Php jQueryAjax为每个新请求发送相同的值
我在一家餐馆网站上工作。我有一个PHP页面,在该页面上,我将餐厅菜单类别显示在一个列表框中 当选择特定类别时,我将使用jquery和ajax加载所选类别的菜单项。下面是jquery代码Php jQueryAjax为每个新请求发送相同的值,php,jquery,html,ajax,performance,Php,Jquery,Html,Ajax,Performance,我在一家餐馆网站上工作。我有一个PHP页面,在该页面上,我将餐厅菜单类别显示在一个列表框中 当选择特定类别时,我将使用jquery和ajax加载所选类别的菜单项。下面是jquery代码 $("#mlist").change(function(){ var v = $(this).children(":selected").attr("id"); var u = $(this).children(":selected").attr("name"); //alert(u);
$("#mlist").change(function(){
var v = $(this).children(":selected").attr("id");
var u = $(this).children(":selected").attr("name");
//alert(u);
$.ajax({
url:'menuitems.php',
type:'get',
data:{mid:v,cid:u},
success:function(response){
var msg =response;
$("#itembox").html(msg);
}
});
});
$(".checkbox").on("click",function() {
var itemid=$( "input:checked" ).attr('id').trim();
var x="#qty"+itemid.trim();
var qty=$(x).val().trim();
if((itemid!="") && (qty!="")){
$.ajax({
url:'addorderitem.php',
type:'get',
data:{i:itemid,q:qty},
success:function(response){
alert(response);
}
});
}
调用始终成功,并加载下一页。在请求的页面中,我显示menuitem id、menuitem名称、数量文本框和选择复选框。一切都很好。PHP代码如下所示
$mid=$_GET['mid'];
$cid=$_GET['cid'];
$result2 = oci_parse($gerp,"SELECT * FROM ITEM where ITEM_TYPE_ID=".$cid." AND CLS_ID=".$mid."AND STATUS = 'A' ");
oci_execute($result2);
$line=1;
while($row_data2 = oci_fetch_array($result2,OCI_BOTH)){
echo"<div class='input-group'><div class='input-group-btn'>";
echo"<div class='col-xs-6'><button type=button class='btn btn-danger' style='width:400px' id=".$row_data2['ITEM_ID'].">".$row_data2['ITEM_NAME']."</button></div></div>";
echo"<div class='col-xs-3'><font color=black><input type=text style='width:40px' class='input-group.input-group-sm' placeholder=Qty id=qty".$row_data2['ITEM_ID']."></font></div>";
echo "<div class='col-xs-3'><div class='checkbox'><input type=checkbox id=".$row_data2['ITEM_ID']."></input></div></div></div><br>";
$line++;
}
每次将第一个选定项目及其数量发送到下一页时。例如,如果第一个选择的菜单项id为101,数量为20,则每选择一个菜单项,就会将101和20发送到下一页。这是某种缓存问题。请指导我解决此问题。您没有将您的选择限制为当前的
。checkbox
父项,因此$(“输入:已选中”)
选择整个文档中可以找到的第一个已选中的输入字段。如上所述。将$(“输入:已选中”)
更改为$(此)
,如果(!$(此).is(“:已选中”))返回,可能需要额外检查以确保勾选
freedomn-m将$(“输入:已选中”)更改为$(这将产生TypeError$(…)。attr(…)是未定义的。通过此页面的帮助,问题得以解决