#php #jquery #ajax #captcha
#php #jquery #ajax #капча
Вопрос:
у меня возникла проблема при публикации капчи для проверки с помощью php. Я отправляю captcha_value
строку в captcha_check.php и я не знаю, как получить возвращаемое значение ‘true’ или ‘false’
$("#myForm").submit(function() {
$.ajax({
type: "POST",
url: '/captcha_check.php',
data: captcha_value
success: function(data) {
**?WHAT TO DO HERE? how to get true or false**
}
});
captcha_check.php
<?php
if ($_POST['captcha'] == $_SESSION['captcha'])
echo 'true';
else
echo 'false';
?>
Комментарии:
1. Проверьте это, указав ‘alert (data)’ в функции обратного вызова success.
Ответ №1:
Я установил заголовок для вывода в виде xml.
captcha_check.php
<?php
header('Content-Type:text/xml');//needed to output as xml(that is my choice)
echo "<root><message>";
if ($_POST['captcha'] == $_SESSION['captcha'])
echo 'true';
else
echo 'false';
echo "</message></root>";
?>
$("#myForm").submit(function() {
$.ajax({
type: "POST",
url: '/captcha_check.php',
dataType:'xml',
data: captcha_value
success: function(data) {
if($(data).find('message').text() == "true"){
//now you get the true. do whatever you want. even call a function
}
else{
//and false
}
}
});
это мое решение, вероятно, работает и для вас. Я всегда предпочитаю xml для связи. Это мой выбор.
Ответ №2:
$.ajax({
type: "POST",
url: '/captcha_check.php',
data: captcha_value,
dataType: "text",
success: function(data) {
if(data == "true") {
// correct
} else {
// nope
}
}
});
Ответ №3:
dataType: 'json', //Important:Sometimes JQuery fails to automatically detect it for you.
success: function(data) {
console.log(data ? "Data is true" : "Data is false");
}