我是一個長期的潛伏者,第一次在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
您可以在獲取選擇值的行上的瀏覽器中設置斷點嗎?更改事件是否正在發射? –