我是一个长期潜伏者,第一次在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,但在我看来,你的引号不匹配。
'$('"#Item" . $itemNum . "Select option:selected'").change(function() {
'$('"#Item" . $itemNum . "Size'").html(result);
'$('"#Item" . $itemNum . "Size'").show();
或者
你可以在客户端使用jQuery进行实时绑定。
编辑
在你的 JavaScript 中
$('select').change(function(){
alert(this.options[this.selectedIndex].value);
});
.HTML
<select>
<option value="apple">Apple</option>
<option value="orange">Orange</option>
</select>
因此,对于您添加的每个选择(通过 AJAX 动态添加),将自动绑定到该更改事件。
或者,您可以使用更复杂但不易出错的方法,即仅从 JSON 中的服务器请求数据,并使用数据填充控件。