Мне очень нелегко пытаться сделать что-то очень простое. Вот код:
if(data == 'success') {
alert('foo');
} else {
alert(data);
}
Я упростил его, но это - все, что это необходимо понять то, что продолжается. переменные 'данные' являются результатом вызова Ajax, если это имеет какое-либо значение. Проблема состоит в том, что это всегда 'еще' переходит в оператор, и это предупреждает 'успех', который это не было должно, если это 'еще' переходит в. Какая-либо идея, что продолжается здесь?
Править: Вот полный код Ajax в jQuery:
$.post("/manage_sites.php", {before:before, edit:after}, function(data){
if(data == success) {
alert('blah');
} else {
alert(data);
}
});
И затем в ответе PHP:
...code....
$update = mysql_query("UPDATE users SET feeds = '$afterFeed' WHERE username = '$name'") or die("Query Failed");
if($update) {
echo 'success'; //this is the 'string' that is being given to 'data'
}
Вы можете исправить это на стороне клиента, используя $.trim()
вот так:
if($.trim(data) == 'success') {
Или, лучшим подходом будет удаление новой строки, идущей со стороны сервера, возможно, где-то в вашем PHP ошибочная новая строка, проверьте до или после блока ?>
, это наиболее частое место, где они появляются.
Или просто выйдите после вывода содержимого, например так:
if($update) {
echo 'success';
exit();
}
Вы можете удалить завершающую строку ?> в вашем файле, если это последняя строка в файле. Я хочу ответить на комментарии к исходному вопросу, но не вижу как.