我有以下HTML結構:如何通過AJAX調用(CodeIgniter的框架)形式的數據傳遞給PHP
<form method="POST">
Name : <input id="asgname" type="text"> <br>
Description : <input id="asgdescription" type="text"> <br>
<a href="#" id="asgsave" class="assignment-action">Save</a>
</form>
我想上點擊保存按鈕,表單值通過AJAX發送到服務器呼叫。 對於這一點,我已經通過下面的命令
$("#asgsave").click(save_assignment);
save_assignment附加click事件也被定義爲後續的JavaScript函數:
function save_assignment() {
return $.ajax({
type: "POST",
url: "<?php echo base_url();?>index.php/user/save_assignment",
data: $('form').serialize(),
success: function(response) {
alert('Form was submitted');
},
error: function(error) {
alert("Error");
}
});
}
以上不工作。所以我也嘗試了以下方法:
function save_assignment() {
var formvalues = {
name : $('#asgname').text(),
descripion : $('#asgdescription').text(),
};
return $.ajax({
type: "POST",
url: "<?php echo base_url();?>index.php/user/save_assignment",
data: {values : formvalues},
success: function(response) {
alert('Form was submitted');
},
error: function(error) {
alert("Error");
}
});
}
但是這也行不通。
任何人都可以請指導我爲什麼是上述方法不工作,以及這樣做的正確方法是什麼?
編輯-1:
如果不工作,我的意思是:在第一種情況下($(「形式」)序列化()方法)的數據沒有被髮送到服務器。我通過chrome和firefox調試器檢查過,沒有發送相應的表單發佈的數據。
而在第二種情況下,正在發送空值。即發送到服務器的發佈數據如下:
values[name]
values[description]
即上述值爲空。
EDIT 2:
通過登錄firephp,我已經證實,save_assignment PHP腳本正在執行。因此,Ajax調用工作正常,但它沒有正確傳遞數據。
什麼是「這也不行」是什麼意思?你沒有錯誤,你沒有迴應等等。您是否使用Chrome Inspector查看您的ajax調用及其響應? – Jakub
@Jakub:在編輯中添加了信息。 – user1599964
當所有其他都失敗時,從前面到後面排除故障(js - > php)。除非你發現從服務器端返回的錯誤(使用檢查器),否則不要進入PHP。如果你一次深入研究PHP + JS,你肯定會錯過一些東西。 'console.log()'是你的朋友,用它來輸出你認爲你發送的所有值。 – Jakub