2014-01-14 61 views
1

我使用AJAX將一些變量發送到PHP表單,該表單將處理它們並將它們放入會話變量中。在下面的代碼中,我試圖從兩個POST變量中獲取數據。

如果我兩個都保持原樣,則不會有效。如果我評論一個,另一個會工作,反之亦然。我不確定我在這裏做錯了什麼。

這裏是將數據發送到PHP頁面要被處理的AJAX:

$.ajax({ 
     type: 'POST', 
     async: false, 
     data: 
      { 
       from_date: from_date, 
       job_no: job_no, 
      }, 
     url: 'pnf_post.php', //send variables to this page to be processed 
     success: function(data){ 
      oTable2.fnReloadAjax('FE_resolved_pnfs.php'); //reload datatables 
      }, 
     error: function(){ 
      console.log(data); 
      alert('Error'); 
      } 

     }); 

這裏是處理AJAX數據的代碼:

session_start(); 

if(isset($_POST['job_no'])) 
    { 
     $_SESSION['Job_Num'] = $_POST['job_no']; 
     $_SESSION['Search_By_Date'] = "NO"; 
    } 

if(isset($_POST['from_date'])) 
    { 
     $_SESSION['From_Date'] = $_POST['from_date']; 
     $_SESSION['Search_By_Date'] = "YES"; 
    }      

任何幫助,將不勝感激

+0

請顯示'var_dump($ _ POST)' –

回答

1
  1. 您已設置在後數據都from_datejob_no
  2. 您檢查關鍵from_datejob_no存在
  3. 顯然他們都存在
  4. 您可以設置Search_By_DateNO然後YES所以它總是YES

如果該值計算結果爲真或假,而不是使用isset它檢查關鍵存在數組中的你可能要檢查。

@jk。尾隨逗號對於現代瀏覽器不是問題。

+0

我是新來php/jquery,所以我想我誤解了POST的工作原理。我的想法是,通過使用isset,我正在檢查是否有任何數據已傳入變量中。我將更改代碼以查看變量 – user3101337

+0

@ user3101337中的內容。您已將發佈數據指定爲「{from_date:from_date,job_no:job_no}」,以便將兩者都包含在內。它們可能具有'null'或'undefined'的值,但它們存在,所以isset()將爲這兩個鍵返回true。 – msg7086

2

取出逗號在這裏:

job_no: job_no, 

並將其更改爲:

job_no: job_no 

全部剪斷:

data: 
    { 
    from_date: from_date, 
     job_no: job_no 
    }, 
+1

的結果我已經刪除了一些變量,以便更容易閱讀和忘記逗號。雖然好眼睛! – user3101337