#php #jquery #mysql #ajax
#php #jquery #mysql #ajax
Вопрос:
Я продолжаю получать сбой от моего AJAX. Я проверил весь свой PHP в отдельном файле, и, похоже, все работает нормально. Никаких проблем, и json_encode созданного массива, похоже, соответствует всем именам полей и значениям.
Поскольку мое понимание AJAX и JSON не очень хорошее, я полагаю, что пропустил какой-то очевидный момент. Я проверил КОНСОЛЬ в Google Chrome Inspect Elements, и там нет сообщений.
JS:
function processSearch(){
alert('Doing Search');
$.ajax({
url: "WCITSearch.php",
type: "POST",
data: $('#searchFORM').serialize(),
dataType: "json",
success: function (data) {
alert("SUCCESS from PHP:");
$('#results').html(data);
},
error: function (data) {
alert("FAILURE from PHP:");
$('#results').html(data);
}
event.preventDefault();
}
PHP:
$connection = mysql_connect($host,$user,$pass) or die(mysql_error());
$dbs = mysql_select_db($database, $connection) or die(mysql_error()); // Select the datbase
// 2) Query database for data
$select = "SELECT vehGrpName, vehTitle, vehDescrip FROM vehicles LIMIT 20";
$result = mysql_query($select) or die(mysql_error()); //query
$recs = array();
if(mysql_num_rows($result)) {
while($post = mysql_fetch_assoc($result)) {
$recs[] = array('vehicles'=>$post);
}
}
// 3) echo result as json
echo json_encode($recs);
Я боролся уже пару дней, но я не знаю, что тестировать дальше.
Любые указания / помощь будут очень оценены.
Спасибо
Комментарии:
1. В чем именно заключается сбой? В какой момент это происходит — во время запроса или ответа? Это просто пустые данные или вообще ничего? Ваш скрипт вводит функцию success-function? Или функция ошибки? И, похоже, отсутствуют обе закрывающие скобки из
ajax({});
2. Спасибо за быстрый ответ. Отсутствует закрывающий AJAX. Они потерялись при моей копировании-вставке. Ошибка заключается в выполняемом предупреждении об ошибке: опция AJAX.
3. Спасибо за любую помощь. Теперь я понимаю немного лучше и научился использовать
console.log()
. Ошибка: опция выполняется только тогда, когда есть проблема со скриптом PHP, и я обнаружил это из-за следующего кода, который я где-то нашелerror: function (XMLHttpRequest, textStatus, errorThrown) { alert("XMLHttpRequest=" XMLHttpRequest.responseText "ntextStatus=" textStatus "nerrorThrown=" errorThrown);}
, и я мог видеть, что я перепутал свой рабочий тест PHP с реальным PHP. Если я внедрю это в будущем, я надеюсь, у меня будет меньше проблем.
Ответ №1:
Я думаю, вы имеете в виду, что вызван обратный вызов ajax error, это не означает, что «php терпит неудачу», но «запрос не выполняется».
http://api.jquery.com/jQuery.ajax/
Поэтому я думаю, вам следует проверить url
атрибут. Вы уверены, что WCITSearch.php
и ваш скрипт находятся на одном уровне? Однако вы можете использовать network
tab в инструментах разработчика webkit.
Комментарии:
1. URL правильный и находится в том же каталоге, что и вызывающий javascript. Они на один уровень ниже
public_html
.2.
WCITSearch.php /WCIT POST 200 OK text/html jquery.min.js:4 Script 235B 20B 948ms 940ms
Надеюсь, это поможет.3. Да, я не понимаю, почему вызывается обратный вызов с ошибкой, поскольку запрос возвращает OK. Возвращает ли он какой-либо JSON?