Javascript - Если Заявление Горе - PullRequest
1 голос
/ 17 февраля 2011

Я использую AJAX на моем сайте.AJAX, очевидно, является двухсторонней связью.

Вот код PHP, который повторяет идентификатор или слово ERROR:

$quickCheckQuery = mysql_query("SELECT * FROM pos WHERE type='$type' AND design='$design' AND medium_id='$medium'")or die("ERROR: ".mysql_error());
if(mysql_num_rows($quickCheckQuery)==0){
    mysql_query("INSERT pos VALUES(NULL, '$title', '$type', '$design', NULL, NULL, NULL, NULL, NULL, NULL, '$medium')")or die("ERROR: ".mysql_error());
    echo mysql_insert_id();
}else{
    echo "ERROR";   
}

И который отправляет слово ERROR или вставленный идентификатор обратно вклиентская сторона, как и ожидалось.

Вот мой «ответ получения» в javascript:

if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
            var newId;
            newId = xmlhttp.responseText;

            if(newId=="ERROR"){
                alert(newId);
                alert("There is an ERROR");
            }else{
                alert(newId);
                alert("Processing Files");
            }

    }

Теперь, что это делает, я получаю 2 предупреждения на условие - одна сторона этого может быть:

Alert 1: ERROR
Alert 2: There is an ERROR

OR 

Alert 1: 5
Alert 2: Processing Files

Однако, что я на самом деле получаю:

Alert 1: ERROR
Alert 2: Processing Files

Моя логика оператора if кажется достаточно простой.Я просто не могу пнуть эту проблему ..

Ответы [ 3 ]

2 голосов
/ 17 февраля 2011

Есть ли в вашем php-файле дополнительные пробелы? например в начале или в конце.

Вы закрываете свой php файл с помощью?>, Если нет, то.

Вы можете попробовать удалить пробел из текста ответа.

newId = xmlhttp.responseText.replace(/(^\s+|\s+$)/g, '');
0 голосов
/ 17 февраля 2011

, потому что это может сделать трюк, проверяющий, что

die("ERROR: ".mysql_error());
0 голосов
/ 17 февраля 2011

вы пробовали firebug или панель инструментов разработчика? Затем вы можете просто установить точку останова в своем javascript (нажмите f12, чтобы открыть, затем нажмите на вкладку сценария, найдите ваш скрипт получения и нажмите, чтобы установить точку останова в начале вашего if - тогда вы можете установить часы и т. Д.), Так как это все выглядит правильно - но, как и предполагалось, до / после ошибки, возможно, есть некоторые не-буквенные символы - это будет ясно, если вы установите часы.

В противном случае, чтобы выполнить отладку без этого, попробуйте предупредить об этом: alert ('"' + newId + '"'); чтобы увидеть, если у вас есть пробелы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...