[英]Is there a way to display data to textbox after search? Codeigniter Ajax
從文本框中正確獲取數據后,我需要在文本框中獲取並顯示 id。
我需要從文本框中查看其他表字段數據
這是我的視圖和 Ajax
<div class="form-group">
<h5>Class Code:</h5>
<small><li>Only teachers shall give you code</li></small><br>
<input type="text" id="code" class="form-control col-md-6" placeholder="Enter class code to join" name="code" required />
<span id="code_result"></span>
<input type="text" name="id" id="id" class="form-control col-md-2" />
</div>
Ajax - 所以我需要獲取 id 但對於我的代碼,它不顯示
//Verify
$('#code').on("change keyup paste", function(){
var code = $('#code').val();
if(code != '')
{
$.ajax({
url:"<?php echo base_url(); ?>students/check_code_avalibility",
method:"POST",
data:{code:code},
success:function(data){
$('#code_result').html(data);
$('input[name=id]').val(data.id); // I need to fetch this data
}
});
}
});
控制器 - 這里我驗證數據是否正確
function check_code_avalibility()
{
if(!$this->student_model->is_code_available($_POST["code"]))
{
echo '<label class="text-danger"><span class="glyphicon glyphicon-remove"></span> Invalid Code</label>';
}
else
{
echo '<label class="text-success"><span class="glyphicon glyphicon-ok"></span> Code Available </label><hr>';
echo '<button type="submit" class="btn btn-primary btn-md">Join to Class</button>';
}
}
模型
function is_code_available($code)
{
$this->db->where('code', $code);
$query = $this->db->get("groups");
if($query->num_rows() > 0)
{
return true;
}
else
{
return false;
}
}
要實現您想要的,您必須修改check_code_avalibility
函數以返回數據而不是回顯 html。 當你在 javascript 中做這樣的事情時:
.val(data.id)
這意味着您需要一個具有id
屬性的對象。 但是您的 PHP 函數沒有返回一個對象。 它返回一個字符串(您的 html 輸出)。 沒有id
,所以你不能使用它。
如果你想為 javascript 返回一個對象,最好的方法是使用 JSON。 請參閱json_encode
示例。 因此,與其在函數中回顯 html,不如將該 html 存儲在某個鍵下的數組中:
$output['html'] = '<label class="... and so on';
請注意,如果您要回顯多行,則需要在添加到數組之前將它們連接起來。 在你的 javascript 中,這個 html 輸出現在可以在data.html
下data.html
(因為我是如何命名數組鍵的)。
此外,您需要將您想要的 ID 添加到同一個數組中:
$output['id'] = $this->student_model->id;
如果您返回此數組的 JSON 編碼版本,您將在 javascript 中同時獲得 html 和 ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.