【发布时间】:2015-09-30 21:36:25
【问题描述】:
我构建了一个可以从 MySQL 数据库中选择数据的表单,并且所选行的所需字段将显示在表单的输入字段中。但是,从某种意义上说,这种形式是动态的,您可以拥有同一种形式的多种形式。
如果生成了两个或多个表单,则只有第一个表单会自动填充。我希望每个表单在从数据库中选择一行时自动填充其相应的输入字段。
代码如下:
<?php
$start=1;
$end= $_POST['item']; echo'<br>';
for($start;$start<=$end;$start++){
require("connect.php");
$sql = "(SELECT * FROM drug_name)";
$result = mysqli_query($conn, $sql);
?>
<form align="center" method="post" action="transaction.php">
Name:
<select align="right" name="inputname[]" onchange="showunit(this.value); showqty(this.value)"
value="inputvalue[]">
<option selected="selected" value="0">S/N Select drug --</option>
<?php while($row = $result->fetch_assoc()){ ?>
<option value='<?php echo $row['SN']; ?>'><?php
echo$row['Drug_Item_Name']?></option>
<?php
}
?>
</select>
<td align="right">Stock Level:</td>
<td><input type="text" name="input3[]" placeholder="Enter QTY" size="5" id="displayqty"></td>
</tr>
<?php echo '<br>'; ?>
<?php }
?> </form>
这是制作AJAX代码的代码:
<script>
function showqty(str) {
if (str == "") {
document.getElementById("displayqty").value = "";
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 (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("displayqty").value = xmlhttp.responseText;
}
}
xmlhttp.open("GET","qtydisplay.php?q2="+str,true);
xmlhttp.send();
}
}
</script>
这是从 MySQL 数据库中获取数据的 AJAX 代码:
<?php
$q2 = intval($_GET['q2']);
include("connect.php");//connection to database
mysqli_select_db($conn,"ajax_demo");
$sql="SELECT Qty_Stocked FROM drug_name WHERE SN = '".$q2."' LIMIT 1";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array( $result)) {
echo $row['Qty_Stocked'];
}
mysqli_close($conn);
?>
【问题讨论】:
-
SQL 一开始就错了 - 从字符串内部删除圆括号。除此之外,我看不到一个具体的问题。此脚本中的哪些具体内容不起作用?
-
for()循环很奇怪——你在循环之外给了它一个起始值。将其移到内部,因此:for($start = 1; .... -
@Halfer,感谢您的回复。只有第一个表单会自动填充输入字段。我希望每个包含 标记的表单都能够从数据库中选择数据并自动填充它们对应的输入字段
-
您想通过 AJAX 来实现吗?如果是这样,您是否有任何代码可以尝试这样做?如果有,我们可以看看吗?
-
我现在重新编辑了您的问题,以提请注意单独的部分。我想知道您是否需要一张图片来展示这些表格目前的运作方式?显示代码很好,但我认为表单的功能或 AJAX 回复应包含的内容尚不清楚。看起来您正在返回整数值,您是否只想以所有形式这样做?