簡體   English   中英

無法將Ajax和jquery,CodeIgniter傳遞給控制器​​的數據(PHP框架)

[英]not able to pass data to controller using Ajax with jquery ,CodeIgniter (PHP framework)

使用AJAX將數據傳遞到控制器這是我編寫的腳本,用於將數據傳遞到控制器,但數據未傳遞到控制器

這是我要傳遞的輸入數據

    <div class="form-group">
        <table class="table table-striped b-t b-light text-sm">
            <thead>
                <tr>
                <th>ID</th>
                <th>Question</th>
                <th>answer</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($quet as $row) { ?>
                <tr>
                <td ><?php echo $row['id']; ?></td>
                <td>
                <?php echo $row['question']; ?>
                </td>
                <td><input type='text' name='name' required="required" class="form-control" placeholder='Enter Your Answer'></td>
                </tr>
                <?php } ?>  
            </tbody>
        </table>
    </div>
<button class="btn btn-primary nextBtn btn-lg pull-right" id ="next" type="button" >Next</button>

和腳本

<script>
           $(document).ready(function($){
    $("#next").click(function(){

     var array = $("name").val()

     $.ajax({
          type: "POST",
          datatype:"json",
          url: BASE_URL+"/student/add",
          data: 'data='+array,
          contentType:'application/json',
          processData: false,              
          error: function(response) {console.log('ERROR '+Object.keys(response)); },
          success: function(response) {
              console.log(response)

          }});

        return false;
    });  
});
</script>

和學生控制器

function add(){

      if($this->student_model->add($this->input->post()))
        {
        $response['success'] = TRUE;
        }
        else
        {
        $response['success'] = FALSE;
        }
        echo json_encode($response);  
    }

嘗試這個。 您的數據格式可能不正確

data: {'data':array}

編輯

 <input type='text' name='answer' id='answer' required="required" class="form-control" placeholder='Enter Your Answer' />
<script>
   $(document).ready(function($){
        $("#next").click(function(){

        var array = $("#answer").val() // see the change name to id, see the html also

         $.ajax({
             type: "POST",
              url: BASE_URL+"/student/add",
              data:{'data':array},
              error: function(response) {console.log('ERROR '+Object.keys(response)); },
              success: function(response) {
                 console.log(response)
              }});
         });  
    });
 </script>

還要檢查數組是否在您的JS中正確接收

<script>
  $(document).ready(function($){
    $("#next").click(function(){

     var array = $("#id").val()

     $.ajax({
          type: "POST",
          datatype:"json",
          url: BASE_URL+"/student/add",
          data: {
            'data':array
          },
          contentType:'application/json',
          processData: false,              
          error: function(response) {console.log('ERROR '+Object.keys(response)); },
          success: function(response) {
              console.log(response)

          }});

        return false;
    });  
});
</script>

在您的控制器中,您應該將$this->input->post()更改$this->input->post('data')

您需要在代碼中更改以下內容。

在腳本中

<script>
$(document).ready(function($){
    $("#next").click(function(){

     var array = $("input[name]").val();

     $.ajax({

          type: "POST",
          url: BASE_URL+"/student/add",
          data: {'data':array},            
          error: function(response) {console.log('ERROR '+Object.keys(response)); },
          success: function(response) {
              console.log(response)

          },
          datatype:"json"
     });

        return false;
    });  
});
</script>

在學生控制器中

function add(){

      if($this->student_model->add($this->input->post('data')))
        {
            $response['success'] = TRUE;
        }
        else
        {
            $response['success'] = FALSE;
        }
        echo json_encode($response);  
    }

希望對您有所幫助。

從您提到的代碼中,您需要檢查以下幾點:

1)當您使用contentType:'application/json',使用數據格式作為data: {'data':array}

2)最后檢查網址url: BASE_URL+"/student/add",是否可訪問。

希望這可以幫助 :)

暫無
暫無

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

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