我有一个表单,其中有选择选项和文本框。我想要做的就是当我选择特定选项时,它将传递id以查询同一个表以根据所选选项的ID获取另一列的值,然后在插入/更新之前在文本框中显示该值表
如果我的表单中的两个字段都使用select字段,则此代码将有效。所以在我看来,也许我在输入文本字段中存储值的脚本是完全错误的。如果我做错了,请纠正我。
我的表单代码:
<form name="inserform" method="POST">
<label>Existing Customer Name : </label>
<select name="existCustName" id="existCustName">
<option value="">None</option>
<?php
$custName = $conn->query("SELECT * FROM customers");
while ($row = $custName->fetch_assoc())
{
?><option id="<?php echo $row['customerID']; ?>" value="<?php echo $row['customerID']; ?>"><?php echo $row['customerName']; ?></option><?php
}
?>
</select>br>
<label>Current Bottle Balance : </label>
<input type="int" id="currentBal" name="currentBal"></input><br>
<input name="insert" type="submit" value="INSERT"></input>
</form>
我的脚本代码:
<script type="text/javascript">
$(document).on("change", 'select#existCustName', function(e) {
var existCustID = $(this).children(":selected").attr("id");
$.ajax({
type: "POST",
data: {existCustID: existCustID},
url: 'existingcustomerlist.php',
dataType: 'json',
success: function(json) {
var $el = $("input#currentBal");
$el.empty();
$.each(json, function(k, v) {
$el.append("'input[value='" + v.currentBal + "']").val();
});
}
});
});
</script>
existingcustomerlist.php代码:
<?php
include 'config/config.php';
$result = $conn->query("SELECT * FROM customers WHERE customerID = '" .$_POST['existCustID'] . "'");
$results = [];
while ($row = $result->fetch_assoc()) {
$results[] = $row;
}
header('Content-Type: application/json');
echo json_encode($results);
?>
我需要帮助来解决这个问题。
答案 0 :(得分:0)
我假设你试图将结果显示为#currentBal元素旁边的输入文本元素。尝试更改成功回调中的脚本标记,如下所示。
$.each(json, function (k, v) {
$el.after("<input type='text' class="currentBalTemp" value='" + v.currentBal + "' />");
});
确保在select的change事件中删除.currentBalTemp元素,否则将显示重复。在change事件上添加以下代码。
$('.currentBalTemp').remove();