簡體   English   中英

有沒有辦法在搜索后將數據顯示到文本框? 代碼點火器 Ajax

[英]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.htmldata.html (因為我是如何命名數組鍵的)。

此外,您需要將您想要的 ID 添加到同一個數組中:

$output['id'] = $this->student_model->id;

如果您返回此數組的 JSON 編碼版本,您將在 javascript 中同時獲得 html 和 ID。

暫無
暫無

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

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