我是一个长期的潜伏者,第一次在Stack Overflow上发布海报(这在之前的一些编程项目中为我省了不少)。我有一个独特的问题,我一直无法通过搜索网站找到,所以我会在这里描述它。来自PHP循环内的JQuery代码的AJAX请求
我正在创建一个在线订单表单,供用户选择食品类别。该类别被发送到运行数据库查询的另一页代码,并将该类别中的所有项目返回到名为ItemXSelect(其中X是项目编号)的下拉框。我没有遇到过这个问题。但是,我在使用用户在另一个AJAX查询中为ItemXSelect选择的值时遇到了问题。具体来说,AJAX请求根本不会发送(根据Firebug)。我希望这是一个简单的语法错误,但我已经好几天了。
下面的代码是在PHP Echo语句中编写的Jquery/AJAX,并且有某些字符被转义。 $ itemNum确定ItemXSelect中X的值。
\$(\"#Item" . $itemNum . "Select option:selected\").change(function() {
var sel = \$(\"#Item" . $itemNum . "Select option:selected\").text());
\$.ajax({
type: \"POST\",
url: \"sizearray.php\",
data: { category: \"Cold_Sandwiches\" , selection: sel },
dataType: \"text\"
}).done(function(result) {
\$(\"#Item" . $itemNum . "Size\").html(result);
});
\$(\"#Item" . $itemNum . "Size\").show();
});
这一直困扰着我好几天。我感谢所有能够帮助我找到问题的人(甚至至少可以尝试)。
============================================== =======================================
编辑1
谢谢为了您的帮助,我已经通过将所有JQuery包装在PHP EOD语句中来清理代码。这样,我不必逃避整个事情。以下是更新的代码。以下建议至今尚未解决主要问题,但至少其语法更为简洁。
jQuery("#Item{$itemNum}Select option:selected").change(function() {
var sel = jQuery("#Item{$itemNum}Select option:selected").text());
jQuery.ajax({
type: "POST",
url: "sizearray.php",
data: { category: "Cold_Sandwiches" , selection: sel },
dataType: "text"
}).done(function(result) {
jQuery("#Item{$itemNum}Size").html(result);
});
jQuery("#Item{$itemNum}Size").show();
});
你为什么逃离这么多事情? – tymeJV
你应该尝试一个[PHP多行字符串](http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)来处理所有这些。 – lxe
您可以在获取选择值的行上的浏览器中设置断点吗?更改事件是否正在发射? –