我想从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.", ".$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行等)输出到相应的文本字段中?
答案 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);
}
});