2014-01-14 3 views
1

Я использую AJAX для отправки некоторых переменных в форму PHP, которые будут обрабатывать их и помещать их в переменные сеанса. В приведенном ниже коде я пытаюсь получить данные из двух переменных POST.

Если я оставлю оба, как они есть, никто не будет работать. Если я прокомментирую один, другой будет работать, и наоборот. Я не уверен, что я делаю неправильно здесь.

Вот AJAX, которая отправляет данные на страницу PHP для обработки:

$.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_date и job_no в почтовых данных
  2. Вы проверяете, если ключ from_date или job_no существует
  3. Очевидно, что оба они существуют
  4. Вы устанавливаете Search_By_Date первый в NO затем 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

Смежные вопросы