Intereting Posts

Получение данных POST из вызова AJAX на PHP

Прошло три дня и все еще есть проблемы, чтобы заставить это работать. Этот вызов AJAX в моем js-файле кажется работающим, когда дело доходит до отправки данных JSON:

var _lname = $('#ptLastName').val(); var _fname = $('#ptFirstName').val(); var _mname = $('#ptMiddleName').val(); var _gender = $('#ptGender').val(); var _bday = $('input[name="birthdate"]').val(); // $('#ptBirthDate').val(); var _ssn = $('#ptSSN').val(); $.ajax({ type: "POST", url: ".././CheckPerson.php", data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { var res = response.d; if (res == true) { jAlert('Person Name already exists!', 'Error'); return; } }) 

но в моем PHP-файле:

 $lastname = json_decode($_POST['lastName']); $firstname = json_decode($_POST['firstName']); $middlename = json_decode($_POST['middleName']); $response = array(); mysql_connect ("*****", "****") or die ('Error: ' . mysql_error()); mysql_select_db ("********"); $query = "SELECT Lastname, Firstname, MiddleName FROM tbl_people WHERE Lastname = '$lastname' || Firstname = '$firstname' || MiddleName = '$middlename'"; $result = mysql_query($query); $row = mysql_fetch_array($result); if ($row) { $response = json_encode(array('d' => true, 'test' => $lastname)); } else { $response = json_encode(array('d' => false, 'test' => $lastname)); } echo $response; print json_encode($_POST); 

некоторая ошибка с консоли firebug говорит:

 <br /> <b>Notice</b>: Undefined index: lastName in <b>C:\xampp\htdocs\..\CheckPerson.php</b> on line <b>2</b><br /> <br /> <b>Notice</b>: Undefined index: firstName in <b>C:\xampp\htdocs\..\CheckPerson.php</b> on line <b>3</b><br /> <br /> <b>Notice</b>: Undefined index: middleName in <b>C:\xampp\htdocs\..\CheckPerson.php</b> on line <b>4</b><br /> {"d":false,"test":null}[] 

Я считаю, что json_decode() отлично работает в моем php-файле, но $_POST[''] не может распознать мои опубликованные данные из моего ajax-вызова w / c-переменных:

 data: "{'lastName':'" + _lname + "','firstName':'" + _fname + "','middleName':'" + _mname + "'}", 

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

Можете ли просмотреть данные запроса ajax с помощью консоли firebug?

Вы не можете получить последнее имя, имя от $ _POST. Его внутри строки json. Поэтому сначала вам нужно получить данные, используя

  $data = $_POST['data'] or $_REQUEST['data'] 

Затем декодируйте $ data с помощью json_deocde и получите доступ к вашим атрибутам.

 json_decode($data); 
 $post = file_get_contents('php://input');