【发布时间】:2021-12-06 20:27:26
【问题描述】:
我正在构建一些应用程序,该应用程序使用 PHP 和 Ajax 将数据从 MySql 数据库中检索到动态输入中,当我为此输入检索数据时,它始终显示在下一个但它假设显示在我提到的 div 中在 Ajax 代码中。
这张图片将清楚地解释我的问题对不起我的语言英语不是我的第一语言。
我的html代码:
<div class="form-group">
<label class="control-label col-lg-4"></label>
<div class="col-lg-4">
<div class="box">
<header>
<h5>تفاصيل الطلب</h5>
</header>
<div class="body">
<div class="form-group">
<label class="control-label col-lg-2">الصنف</label>
<div class="col-lg-10">
<select id="itemname" name="itemname[]" class="form-control">
<option disabled selected>اختر الصنف</option>
<?php echo getValues($pdo); ?>
</select>
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">السعر</label>
<div class="col-lg-10">
<input type="text" id="price" name="price[]" placeholder="-" readonly class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label col-lg-2">الكمية</label>
<div class="col-lg-10">
<input class="form-control" type="text" name="quantity[]" id="quantity" value="0" min="1">
</div>
</div>
</div>
</div>
</div>
</div>
PHP 文件:
<?php
require 'DBConnection.php';
$code='';
if(isset($_POST["code"])){
$id = $_POST["code"];
$get_c = $pdo->prepare("SELECT * FROM all_menu WHERE `item_name` = '".$id."'");
$get_c->execute();
while ($row = $get_c->fetch()) {
$code .= $row['price'];
}
echo $code;
}
?>
JQuery 代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
var i=1;
$('#add').click(function(){
i++;
$('#append').append('<div class="form-group"><label class="control-label col-lg-4"></label><div class="col-lg-4"><div class="box"><header><h5>تفاصيل الطلب</h5></header><div class="body"><div class="form-group"><label class="control-label col-lg-2">الصنف</label><div class="col-lg-10"><select id="itemname'+i+'" name="itemname[]" class="form-control"><option disabled selected>اختر الصنف</option><?php echo getValues($pdo); ?></select></div></div><div class="form-group"><label class="control-label col-lg-2">السعر</label><div class="col-lg-10"><input type="text" id="price'+i+'" name="price[]" placeholder="-" readonly class="form-control"></div></div><div class="form-group"><label class="control-label col-lg-2">الكمية</label><div class="col-lg-10"><input class="form-control" type="text" name="quantity[]" id="quantity" value="0" min="1"></div></div></div></div></div></div>');
$('#itemname'+i+'').change(function(){
var code = $(this).val();
$.ajax({
type: 'POST',
url: 'pages/GetPrice.php',
data:{code:code},
success: function(data){
document.getElementById("price"+i+"").value = data;
},
error: function (jqXHR, textStatus, errorThrown){
alert(errorThrown);
}
});
});
});
});
</script>
【问题讨论】:
-
在以
$('#append').append开头的行中,我看到了 JS 连接和 PHP 插值。它可能是 100% 正确的,但很难调试。也许检查 DOM 以确保它是您所期望的。 -
是的。但它不是 DOM。我刚刚发现我们必须使用类来获取元素而不是 ID。
标签: javascript php jquery mysql data-retrieval