Как получить ответы от php на jquery ajax
Привет я пытаюсь повторить определенные сообщения из кода PHP обратно на мой AJAX. Но обычно у меня было бы только одно эхо-сообщение, но в этом случае у меня 2. Но я понятия не имею, как назначить каждое эхо-сообщение одному .html()
$("#finish").submit(function(){
$.ajax({
type:"GET",
url:"checkFinish.php",
data: $("#finishProj").serialize(),
success: function(data){
$("#add_sucess").html();
$("#add_err").html();
}
}
});
if(!empty($mile1) && $mile1Pay == 'unPaid'){
$error = 'Payment Not Completed';
echo $error;
}
if(!empty($mile2) && $mile2Pay == 'unPaid'){
$error = 'Payment Not Completed';
echo $error;
}
if(!empty($mile3) && $mile3Pay == 'unPaid'){
$error = 'Payment Not Completed';
echo $error;
}
if(empty($error)){
$success = "Success";
echo $success;
}
Я хотел бы мой echo $error
зайти внутрь $("#add_err").html();
а также echo $success
быть в $("#add_sucess").html();
Как мне это указать? Потому что обычно, если у меня есть только одна вещь, я бы просто повторил $("#add_sucess").html(data);
2 ответа
Я бы вернул объект JSON обратно в мой AJAX. Таким образом, я могу лучше разделить свои сообщения.
JavaScript
$("#finish").submit(function(){
$.ajax({
type:"GET",
url:"checkFinish.php",
dataType: "JSON",//ajax now expects an JSON object to be returned
data: $("#finishProj").serialize(),
success: function(data){
//now that data is a JSON object, you can call the properties via data.prop
$("#add_sucess").html(data.success);
$("#add_err").html(data.error);
}
}
});
PHP
if(!empty($mile1) && $mile1Pay == 'unPaid'){
$error = 'Payment Not Completed';
}
if(!empty($mile2) && $mile2Pay == 'unPaid'){
$error = 'Payment Not Completed';
}
if(!empty($mile3) && $mile3Pay == 'unPaid'){
$error = 'Payment Not Completed';
}
if(empty($error)){
$success = "Success";
}
echo json_encode(array("error" => $error, "success" => $success));//json_encode an associative array and echo it back to request
exit();
Просто убедитесь, что у вас есть $success
а также $error
определено ранее, иначе вы, вероятно, получите ошибку.
Пройти flag
из success
: 1
для успеха и error
: 0
за ошибку со стороны сервера. И при успехе ajax вы можете определить ответ, проверив data.res
1 или 0. Например:
На сервере:
if($id > 0 ) // for success
{
// do other stuff
$data['res'] = 1 ;
}
else// for error
{
// do other stuff
$data['res'] = 0 ;
}
echo $json_encode($data);
На стороне клиента:
success: function(data){
if(data.res==1)
{
$("#add_sucess").html();// add success message
}
else
{
$("#add_err").html();// add error message
}
}
Примечание: - Не забудьте использовать dataType: "json",
в вашем вызове Ajax.
Обновление: - Если вы устанавливаете string
в успехе, чем установить success message
или ошибка на error message
, так что вы проверите с EMPTY
проверить на стороне клиента, как:
if(data.success_msg != "")
{
$("#add_sucess").html(data.success_msg);// add success message
}
else
{
$("#add_err").html(data.error_msg);// add error message
}