#php #html #mysql
#php #HTML #mysql
Вопрос:
У меня есть страница «Мы» (index.html ), где пользователь может выбрать опцию из выпадающего меню. На основе выбора данные будут извлечены из базы данных и отображены на той же странице с использованием AJAX (вызывается второй файл getParameter.php ). Все работает нормально. Теперь я попытался добавить кнопку, чтобы открылась новая страница, и пользователь мог редактировать и отправлять новое значение в базу данных. Но нажатие кнопки ничего не делает. Я пробовал это с другими HTML-файлами. Это работает везде. Любая помощь, пожалуйста
Index.html
//AJAX
<script>
function showParameterData(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7 , Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 amp;amp; this.status == 200) {
document.getElementById("txtHint").innerHTML = this.responseText;
}
};
xmlhttp.open("GET","getParameterData.php?q=" str,true);
xmlhttp.send();
}
}
</script>
//drop down option selection
<body>
//showParameterData() is the function
<form>
<select name="Device" onchange="showParameterData(this.value)">
<option value="">Select</option>
<option value="1">Device A </option>
<option value="2">Device B </option>
<option value="3">Device C </option>
<option value="4">Device D </option>
<option value="5">Device E </option>
<option value="6">Device F </option>
</select>
</form>
//bitton to edit and send data
<div class="edit_button_class" style= "float:right;">
<form action="edit.html" method="get" target="_blank">
<input type="submit" name="submit" id ="mybutton1" value="Click to Edit" />
</form>
</div>
<div id="txtHint"></div>
</body>
//getParameter.php
<?php
$q = intval($_GET['q']);
include ("DBconnect.php");
$conn= mysqli_connect( $dbhost, $dbuser, $dbpass, $db ) or die("Could not connect: " .mysqli_error($conn) );
$sql="SELECT * FROM parameter WHERE ID = '".$q."'";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result)) {
$price = $row['price'];
$version = $row['version'];}
echo '<table>';
echo "<tr>
<th>Price of the Device :</th>
<td > $price </td>
</tr>";
echo "<tr>
<th>version of the Device :</th>
<td > $version </td>
</tr>";
echo '</table>';
echo '</div>';
Когда я нажимаю кнопку, URL меняется на что-то странное. Это не приведет к edit.html. Даже если я обновлю страницу, странный URL-адрес все еще там. Даже если он показывает index.html добавьте некоторые дополнительные данные в URL
Ответ №1:
Материал, который вы видите в URL, — это параметры get. Вы, используя method =’get’, указываете форме на отправку таким образом.
Что это сделает, так это отправит все имена входных данных и их значения в URL и «прикрепит» их к выбранной вами странице действий.
Например, нажатие кнопки отправит вас в edit.html с полученными параметрами отправки и значением этого, которое является «Нажмите, чтобы отредактировать». Все, что имеет атрибут name, будет отправлено в качестве параметра get. Вам не нужно имя для ввода отправки.
Если вы поместите свой выбор в форму с помощью кнопки отправки, он отправит параметр для выбора, и это означает, что вы можете использовать его на своей странице редактирования.
<div class="edit_button_class">
<form action="edit.html" method="get" target="_blank">
<select name="Device" onchange="showParameterData(this.value)">
<option value="">Select</option>
<option value="1">Device A </option>
<option value="2">Device B </option>
<option value="3">Device C </option>
<option value="4">Device D </option>
<option value="5">Device E </option>
<option value="6">Device F </option>
</select>
<input type="submit" id ="mybutton1" value="Click to Edit" />
</form>
</div>
Я удалил имя из входных данных, поскольку это приводит к отправке его в качестве параметра GET. Используя вышеуказанное, вы будете отправлены в /edit.html?submit =Click to Edit, который вы затем можете использовать на своей странице редактирования, чтобы получить то, что вам нужно.
Надеюсь, это поможет.
Комментарии:
1. Это работает. отлично, спасибо. Что делать, если у меня есть два выпадающих списка. Допустим, Список 1 — Механические устройства. Список 2- Электрические устройства. Я хочу только одну кнопку редактирования для двух списков. В edit.html страница, на которую я хочу предоставить возможность снова выбрать, является ли она электрической или механической, а затем название устройства.