コーディングの時間が過ぎると、最終的にAJAX、JSON、CIの周りをある程度まで包んでいるように感じます。CI_modelがPOSTされたJSONデータを正しくキャッチしない
しかし、私は1つの最終的な障害に遭ったと感じています。以下は私のコードです:ここで私は単に私のフォームを構築してい
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);
}
);
});
});
モデル関数
私は新しいコントローラクラスの拡張 "のAjax" と機能 "インデックス" は、これは単に私のモデル「insert_buildを呼び出して作成しました。 " .jsファイルをページから取り出し、ヘッダーに保持するのが私の回避策でした。
とにかく。送信ボタンを押すと、JSON出力が正常に通知されます。それはコントローラ - >モデルに渡された後、それはどこにもキャッチしていないようです。私はそれが間違っていると仮定しますが、何が分かりません。
ありがとうございます。
わからないのに役立ちます( 'dat') " – Tjkoopa
将来あなたを助けるかもしれない小さなヒント。 alertの代わりにconsole.logを試してみてください。物事をよりエレガントに保ちます;)。 –