如何在jquery ajax中检索数组数据

时间:2013-12-07 08:17:21

标签: jquery ajax codeigniter

我想从ajax jquery函数调用一个codeigniter控制器函数,并且在成功时我得到数组形式的结果。我需要将数组值输出到不同的文本字段中。如何使用jquery ajax检索数组值。我的代码,

<?php 
 echo form_open(base_url().'index.php/tapal');  ?>
    <table class="register-table">
    <tr>
                    <td>Tapal No.</td>
                    <td><input type="text" class="tapal_no" name="Tyear" id="Tyear" placeholder="<?php echo date('Y');?>" />
                        <input type="text" class="tapal_no" name="Tno" id="Tno" />
                        <input type="text" class="tapal_no" name="Tdist" id="Tdist" placeholder="7" /></td>
    </tr>
    <tr>
                    <td><label for="T_sender">Sender Code<span class="required_field">*</span></label></td>
                    <td><select id="T_sender" name="T_sender">
                            <option value=""></option>
                            <?php if(isset($Tsender)) : foreach($Tsender as $send) : ?>
                            <?php echo "<option value=".$send->add_id.">".$send->add_name.",&nbsp;".$send->add_line1."</option>"; ?>    
                            <?php endforeach; ?>
                            <?php else : ?> 
                            <option value=""></option>
                            <?php endif; ?>
                        </select> 
                    </td>
    </tr>
    <tr>
        <td>Sender Name</td>
        <td><input type="text" class="text-input" name="send_name" id="send_name" /></td>
    </tr>
    <tr>
        <td rowspan="3">Address</td>
        <td rowspan="3"><div><input type="text" class="text-input" name="add_line1" id="add_line1" placeholder="Building Name/ No." /></div>
                        <div><input type="text" class="text-input" name="add_line2" id="add_line2" placeholder="Street/ Lane" /> </div>
                        <div><input type="text" class="text-input" name="add_line3" id="add_line3" placeholder="City/ Dist" /> </div></td>
    </tr>
    </table>
<?php    echo form_close();     ?>

和jquery函数,

<script type="text/javascript">
$(function(){
$("#T_sender").change(function(){   
        var sender_code = $(this).val();            
        var out = $("#send_name");
        var ajax_data = {
            sender_code:sender_code,
            action:'findaddress'
        };
        $.ajax({
            url: "<?php echo site_url('tapal/tapalajaxqry'); ?>",
            type: 'POST',
            data: ajax_data,
            success: function(msg) {
                $("#send_name").val(msg);       
            }
        });
});
})
</script>

控制器功能,

    function tapalajaxqry()
{
    if(strncmp($this->input->post('action'),'findaddress',11) == 0){
        if($query = $this->tapal_model->get_Taddress($this->input->post('sender_code')))
        return $query;
    }
}

如何获取数组值,并将它们(发件人姓名,地址第1行,地址第2行等)输出到相应的文本字段中?

2 个答案:

答案 0 :(得分:1)

您最好的选择是将输出编码为JSON(json_encode($array);),这样您就可以使用JSON.parse(data);的ajax / jquery轻松检索和解码结果。

关于这个主题有无数类似的帖子,但由于你的代码是独一无二的,所以不需要将其标记为副本。

首先尝试此操作,如果您需要进一步的帮助,请回复评论:Retrieving Data from a database in codeigniter using AJAX

答案 1 :(得分:0)

试试这个:在你的控制器中

function tapalajaxqry()
{
    // Your code here


    // respond to jQuery
    echo json_encode(array('result' => 'success'));
}

在你的jQuery代码中,会像这样检索:

$.ajax({
            url: "<?php echo site_url('tapal/tapalajaxqry'); ?>",
            type: 'POST',
            data: ajax_data,
            success: function(msg) {
                $("#send_name").val(msg.result);       
            }
});