經過大量編碼後,我覺得我終於圍繞AJAX,JSON和CI在一定程度上圍繞我的腦袋。CI_model無法正確捕獲POST JSON數據
但是,我覺得我已經擊中了一個最後的障礙。下面是我的代碼:
HTML
<div id="structures">
<h1>Build</h1>
<form name="buildForm" id="buildForm" method="POST" action="<?php echo base_url(); ?>/ajax/index/">
<select name="buildID" class="buildClass">
<option value="0" selected="selected" data-skip="1">Build a Structure</option>
<?php foreach ($structures as $structure_info): ?>
<option name='<?php echo $structure_info['str_name'] ?>' value='<?php echo $structure_info['str_id'] ?>' data-icon='<?php echo $structure_info['str_imageloc'] ?>' data-html-text='<?php echo $structure_info['str_name'] ?><i>
<?php echo $structure_info['timebuildmins'] ?> minutes<br><?php echo $structure_info['buy_gold'] ?> gold</i>'><?php echo $structure_info['str_name'] ?></option>
<?php endforeach ?>
</select>
<div id="buildSubmit">
<input id ="btnSubmit" class="button" type="submit" value="Submit"/>
</div>
</form>
</div>
在這裏,我只是我的建築形式。
AJAX/JS
$(function(){
$("#buildForm").click(function(e, buildID){
e.preventDefault();
var frm = $(document.buildForm);
var dat = JSON.stringify(frm.serializeArray());
alert("I am about to POST this:\n\n" + dat);
$.post(
frm.attr("action"),
dat,
function(response)
{
alert(response);
}
);
});
});
型號功能
我創建了一個新的控制器類擴展 「阿賈克斯」 和功能 「指數」 這一簡單的調用我的模型「insert_build。 「我的解決方法是將.js文件從頁面中取出並保存在頁眉中。
無論如何。當我點擊提交按鈕時,它會成功警告JSON輸出。雖然它傳遞給控制器 - >模型後,它似乎沒有捕捉到任何地方。我假設我做錯了,但無法弄清楚什麼。
感謝您的幫助。
不知道,如果它只是你如何粘貼成左右,但「這 - $>輸入 - >後(DAT)」應爲「$這個 - >輸入 - >後('dat')「 – Tjkoopa 2012-03-06 23:16:14
一個小提示,可能會在未來幫助你。給console.log一個嘗試,而不是警報。它只是讓事情更優雅;)。 – 2012-03-07 07:46:20