【发布时间】:2013-11-09 01:33:24
【问题描述】:
我是一个长期的潜伏者,第一次在 Stack Overflow 上发帖(这让我在之前的很多编程项目中受益)。我有一个独特的问题,我无法通过搜索网站找到,所以我会在这里描述它。
我正在创建一个在线订单表格,用户可以在其中选择食品类别。该类别被发送到另一个代码页面,该页面在数据库上运行查询并将该类别中的所有项目返回到名为 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();
});
【问题讨论】:
-
你为什么要逃避这么多东西??
-
您应该尝试使用PHP multiline string 来处理所有这些问题。
-
你能在浏览器中获取选择值的那一行设置一个断点吗?更改事件是否触发?
-
Ixe,我实际上已经完全忘记了多行字符串,我很高兴你提出来了。我将用 EOD-ready 的东西替换我的乱七八糟的代码。我首先避免它的原因是因为我不知道你可以在其中调用 PHP 变量。我想你知道的越多。
-
单引号也可以避免转义(而且你不需要双引号,因为你只是在附加变量)
标签: javascript php jquery ajax syntax