簡體   English   中英

使用表單提交的codeigniter中的Usng JSON

[英]Usng JSON in codeigniter with form submit

我試圖學習如何在codeigniter中使用JSON。 我正在嘗試使用模型來運行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我正在嘗試一個非常簡單的例子。 我想將上面的OPTION(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的基礎知識。

謝謝

url:你在javascript中設置的是你想要在提交ajax時調用的實際函數。 你需要有一個實際調用該函數的控制器,例如

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

此外,將dataType:設置為json意味着您期望從函數返回的內容被編碼為json。

也許改變這個:

 url: "<?php echo $this->structure_model->insert_build() ?>"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM