После множества кодов, я чувствую, что наконец-то в какой-то степени оборачиваюсь вокруг AJAX, JSON и CI.
Однако я чувствую, что столкнулся с одним последним препятствием.Ниже мой код:
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);
}
);
});
});
Функция модели
public function insert_build()
{
$str_id = $this->input->post(dat);
print_r($str_id);
}
Я создал новое расширение класса контроллера «Ajax» и функцию «index». Это просто вызывает мою модель «insert_build».Это был мой обходной путь: убрать файл .js со страницы и сохранить его в заголовке.
Во всяком случае.Когда я нажимаю кнопку отправки, он успешно оповещает о выходе JSON.Хотя после того, как он передается в контроллер-> модель, он, кажется, никуда не улавливается.Я предполагаю, что я делаю это неправильно, но не могу понять, что.
Спасибо за помощь.