簡體   English   中英

PHP未接收到Ajax數據

[英]Ajax data isn't being received by php

你好,溢出者!

我似乎無法設法將我的Ajax數據正確發送到我的php頁面,以前它工作得很好,但是現在不起作用。

我通過console.log獲取正確的數據,但是在我的php頁面上,我得到了Undefined index錯誤。

jQuery的

  var task_takers_pre = [];
  var task_takers = [];
  var i = 1;

  $(".new-task-takers ul.select_takers li").on('click', function(){
    $(this).each(function(){
      $(this).toggleClass("active");
      if($(this).find('.fa').length > 0){
        $(this).find('.fa').remove();
        i -= 1;
        var removeItem = $(this).data("id");
        task_takers_pre.remove(removeItem);
        console.log(task_takers_pre);
      }else{
        $('<i class="fa fa-check" aria-hidden="true"></i>').insertBefore($(this).find("div"));
        i += 1;
        task_takers_pre[i] = $(this).data("id");
        console.log(task_takers_pre);
      }

      $.each(task_takers_pre, function (index, value) {
        if ($.inArray(value, task_takers) == -1) {
          task_takers.push(index, value);
        }
      });
    });
  });

  $("#new-task").on('submit', function(){
    console.log(task_takers_pre);
    $.ajax({
      type: 'POST',
      url: '',
      cache: false,
      data: {task_takers_pre : task_takers_pre },
      success: function(data) {
        //console.log(data)
      }
    });
  });

的PHP

if(isset($_POST['task_submit'])){
    $task_takers = $_POST['task_takers_pre'][0];
    var_dump($task_takers);
}

編輯

jQuery的

var task_takers_pre = [];
  var task_takers = [];
  var i = 1;

  $(".new-task-takers ul.select_takers li").on('click', function(){
    $(this).each(function(){
      $(this).toggleClass("active");
      if($(this).find('.fa').length > 0){
        $(this).find('.fa').remove();
        i -= 1;
        var removeItem = $(this).data("id");
        task_takers_pre.remove(removeItem);
        console.log(task_takers_pre);
      }else{
        $('<i class="fa fa-check" aria-hidden="true"></i>').insertBefore($(this).find("div"));
        i += 1;
        task_takers_pre[i] = $(this).data("id");
        console.log(task_takers_pre);
      }

      $.each(task_takers_pre, function (index, value) {
        if ($.inArray(value, task_takers) == -1) {
          task_takers.push(index, value);
        }
      });
    });
  });

  $(".assign").on('click', function(){
      console.log(task_takers_pre);
      $.ajax({
        type: 'POST',
        url: './core/includes/new_task.php',
        cache: false,
        data: {task_takers_pre : task_takers_pre},
        success: function(data) {
          //console.log(data)
        }
      });
      $.ajax({
        type: 'POST',
        url: '',
        cache: false,
        data: {'task_takers_pre' : task_takers_pre},
        success: function(data) {
          //console.log(data)
        }
      });
    });

的PHP

if(isset($_POST['task_takers_pre'][0])){
    $task_takers = $_POST['task_takers_pre'][0]; // Just for testing
    var_dump($task_takers);                      // Just for testing
}

if(isset($_POST['task_takers_pre'])){
    $task_takers2 = $_POST['task_takers_pre']; // Just for testing
    var_dump($task_takers2);                      // Just for testing
}

您試圖做的是使用相同的PHP代碼處理來自表單和AJAX調用的按鈕按下。 別!

(注意:此答案僅基於已提供的代碼以及此代碼試圖實現的目的。)

因此,您當前使用的PHP是,我想這是您單擊“提交”按鈕時所調用的名稱。在這種情況下,由於您是從JS生成並在AJAX中發送的,因此$ _POST ['task_takers_pre']不存在呼叫。

編寫一個單獨的AJAX調用。

您需要創建一個單獨的文件來處理您的AJAX調用,並使它執行需要執行的任務。

// This is just for testing my AJAX Call
    public function ajax_post(){
      if(isset($_POST['task_takers_pre'])){
        $task_takers = $_POST['task_takers_pre'][0]; // Just for testing
        var_dump($task_takers);                      // Just for testing
        die();
      }
      else {
      // Illegal access/entry do something...
      echo 'Error - I had better check what I am posting.';
      die();
      }
    }

如果您要在單擊“提交”按鈕時在AJAX調用中發送一些數據,則可以返回false以防止在Submit事件中提交表單。

 $("#new-task").on("submit", function(){ $.ajax({ type: "POST", url: "", cache: false, data: {task_submit:1, task_takers_pre: task_takers_pre}, success: function(data){ console.log(data); } }); return false; }); 

暫無
暫無

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

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