2012-08-05 2 views
5

Я отправляю данные через метод .ajax jQuery в свой PHP-файл. Оба файла находятся в одном домене. Файл делая запись выглядит следующим образом ..Получить параметры PHP с помощью jQuery ajax post

$('#pdf').click(function() {      
    var proj_name = $('#proj_name').text(); 
    var date = $('#date').text(); 
    var req_comp_date = $('#req_comp_date').text(); 
    var status = $('#status').text(); 
    var secondUserID = $('#secondUserID').text(); 

    var postData = { 
     "proj_name" : proj_name, 
     "date" : date, 
     "req_comp_date" : req_comp_date, 
     "status" : status, 
     "secondUserID" : secondUserID, 
    }; 

    console.log(postData); 

    $.ajax({ 
     type: "POST", 
     url: "test.php", 
     data: postData, 
     success: function(){ 
      alert(proj_name + ' ' + status); 
      window.open("test.php"); 
     } 
    }); 
}); 

И файл PHP получать на почту данных является ...

//request parameters 
$proj_name = $_POST['proj_name']; 
$date = $_POST['date']; 
$req_comp_date = $_POST['req_comp_date']; 
$status = $_POST['status']; 
$secondUserId = $_POST['secondUserId']; 

echo 'postData: ' . var_dump($_POST); 

if ($_POST)){ 
    echo $proj_name; 
    echo $date; 
    echo $req_comp_date; 
    echo $status; 
    echo $secondUserId; 
} else { 
    echo 'problem'; 
} 

В моей Firebug консоли, я могу видеть, что параметры размещены с. ajax, но я не могу получить сообщение через PHP. Может ли кто-нибудь помочь мне, пожалуйста? Спасибо.

+0

Предположим, что в вашем $ .post() правильный URL-адрес, var_dump ($ _POST); в верхней части вашего php-файла. Что вы получаете? Если там ничего нет, убедитесь, что вы отправляете правильный URL-адрес. –

ответ

7

Добавить обратный вызов ошибки к вашему вызову $.ajax для отладки при сбое запроса.

$.ajax({ 
    type: "POST", 
    url: "test.php", 
    data: postData, 
    success: function(){ 
     alert(proj_name + ' ' + status); 
     window.open("test.php"); 
    }, 
    // Alert status code and error if fail 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.status); 
     alert(thrownError); 
    } 
}); 


Update

Изменить это:

if ($_POST)){ 
    echo $proj_name; 
    echo $date; 
    echo $req_comp_date; 
    echo $status; 
    echo $secondUserId; 
} else { 
    echo 'problem'; 
} 

Для этого:

if ($_POST)){ 
    // Make a array with the values 
    $vals = array(
     'proj_name'  => $proj_name, 
     'date'   => $date, 
     'req_comp_date' => $req_comp_date, 
     'status'  => $status,  
     'secondUserId' => $secondUserid 
    ); 

    // Now we want to JSON encode these values to send them to $.ajax success. 
    echo json_encode($vals); 

    exit; // to make sure you arn't getting nothing else 

} else { 
    // so you can access the error message in jQuery 
    echo json_encode(array('errror' => TRUE, 'message' => 'a problem occured')); 
    exit; 
} 

Теперь в вашем JQuery .success обратного вызова:

success: function(data){ // Our returned data from PHP is stored in "data" as a JSON Object 
    alert(data.req_comp_date); // access your returned vars like this. 
    // data.date; // is your posted date.. etc 
    alert(data.proj_name + ' ' + data.status); 
    window.open("test.php"); 

    // You can also get your error message like so.. 
    if(data.error) // if its true, we have a error, so display it. 
     alert('ERROR: ' + data.message); 

}, 

Вам не нужно делать следующий бит (jquery делает хорошую работу по определению возвращаемого типа данных), но его приятно иметь в коде, чтобы понять, что возвращается.

$.ajax({ ... 
    type: "POST", 
    url: "test.php", 
    data: postData, 
    dataType: "json" // <-- Add this to tell jquery, we are being returned a JSON object. 
.... }); 
+0

Спасибо за помощь. Я не получил ошибку, чтобы работать. Я видел этот ответ Firebug Response файла PHP. Массив ( [PROJ_NAME] => Название проекта: 8,3 PRDx Нет Сохраненный проект [дата] => Дата: 2012-08-03 [req_comp_date] => Запрошенный Дата завершения: н/ [состояние] = > Статус: ожидание [secondUserID] => Назначить другой пользователь редактировать этот запрос проекта документа \t \t \t \t \t Нил Zaratan ) Итак, мне просто нужно вывести его на страницу какой-то образом?. Он не отвечает правильно. –

+0

Я обновил свой ответ, чтобы лучше повторить объект JSON и проанализировать его в jQuery. – Anil

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