Использование JSON в codeigniter с отправкой формы - PullRequest
0 голосов
/ 06 марта 2012

Я пытаюсь узнать, как использовать JSON из codeigniter. Я пытаюсь использовать модель для запуска кода AJAX, но он не работает.

Мне нужно научиться передавать переменные в модель и обратно; или, если это неправильно, мне нужно изучить правильный процесс. Ниже мой код.

HTML

<div id="structures">
    <h1>Build</h1>
    <form name="buildForm" id="buildForm" method="POST">
        <select name="buildID" class="buildClass">
        <option value="0" selected="selected" data-skip="1">Build a Structure</option>
    <option name='Town Center' value='1' data-icon='../img/structures/tc.png' data-html-text='Town Center<i>
        500 minutes<br>50000 gold</i>'>Town Center</option>
    <option name='Barracks' value='2' data-icon='../img/structures/barracks.png' data-html-text='Barracks<i>
        25 minutes<br>1500 gold</i>'>Barracks</option>
    <option name='Dragon Roost' value='3' data-icon='../img/structures/droost.png' data-html-text='Dragon Roost<i>
        200 minutes<br>5000 gold</i>'>Dragon Roost</option>
    <option name='Mage Hall' value='4' data-icon='../img/structures/mage.png' data-html-text='Mage Hall<i>
        40 minutes<br>300 gold</i>'>Mage Hall</option>
    <option name='Test Lab' value='6' data-icon='../img/structures/testlab.png' data-html-text='Test Lab<i>
        1 minutes<br>10 gold</i>'>Test Lab</option>
        </select>
        <div id="buildSubmit">
            <input id ="btnSubmit" class="button" type="submit" value="Submit"/>
        </div>
    </form>
</div>

Вот мой ajax / js / json Я пытаюсь очень простой пример. Я хотел бы опубликовать значение ОПЦИИ выше (1-6) в функции модели insert_build. Я не знаю, так ли это, потому что не могу придумать, как это проверить. Тем не менее, я предполагаю, что если он что-нибудь вернет, я буду предупрежден. Я нет.

$(function(){
    $(".button").click(function(e, value){
        e.preventDefault();

        $.ajax({
        type: "POST",
        url: "<?php $this->structure_model->insert_build() ?>",         //the script to call to get data          
        str_id: value,
        dataType: 'json',                //data format      
        success: function(data)          //on receive of reply
            {
                alert("success!");
            } 
        });
 });
});

Код модели

 public function insert_build()
        {
            $str_id = $this->input->post('str_id');
            echo " TESTING $str_id";
        }

Любая помощь будет принята с благодарностью. Почему это не работает? Я все еще пытаюсь понять основы Codeigniter и JSON / JS.

Спасибо

Ответы [ 2 ]

2 голосов
/ 06 марта 2012

url:, который вы устанавливаете в своем javascript, - это реальная функция, которую вы хотите вызвать при отправке ajax.Вам понадобится контроллер, который фактически вызывает эту функцию, например,

url: "<?php echo base_url(); ?>/structure/insert/?str_id=" + $('#buildID').val(),

Кроме того, установка dataType: в json означает, что вы ожидаете, что то, что возвращается из вашей функции, будет закодировано как json.

0 голосов
/ 06 марта 2012

Может быть, изменить это:

 url: "<?php echo $this->structure_model->insert_build() ?>"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...