php - 即使成功后,ajax成功调用执行else条件
问题描述
我根据 if 和 else 条件从 php 返回响应。即使在执行 if 条件之后,ajax 成功调用也会执行 else 条件。下面是我的代码。我没有让交易成功,而是没有足够的余额。我尝试了很多方法,但没有奏效。任何帮助都会很棒。
php代码
<?php
if(isset($_POST['name'])){
// some code
}
if(isset($_GET['paymentInfo']))
{
// some code
if($dataPayerBalance >= $amount)
{
// some code
$response = 'success';
}
else
{
$response = 'error';
}
// some code
echo json_encode($response);
}
?>
ajax 调用
$.ajax({
type: 'get',
data: {'paymentInfo' : dataToSend},
success: function(response)
{
if(response == 'success')
{
$('.modal-body').html("Transaction Successful");
$('#empModal').modal('show');
}
else
{
$('.modal-body').html("Don't have enough balance");
$('#empModal').modal('show');
}
},
error: function()
{
$('.modal-body').html("Error Occured");
$('#empModal').modal('show');
}
});
解决方案
问题是您将字符串编码为 json 并且期望不是 json,而是响应中的字符串。让我们把它们都变成json:
在你的 php 代码中:
echo json_encode(['result'=>$response]);
在您的 ajax 调用中:
$.ajax({
url: "your api url",
type: 'GET',
data: {'paymentInfo' : dataToSend},
dataType: 'json'
}).done(function( data ) {
if (data.result == 'success'){
//your custom action
}
})
.fail(function() {
//your custom action
});
推荐阅读
- php - 如何将 wp_editor 添加到 textarea?
- c++ - 大斐波那契数
- flutter - 使用上下文和观察更改模型时,Flutter Provider 不会触发重建
- next.js - next-auth 中 useSession 和 getSession 的区别?
- python - 从列表中追加 Numpy
- azure - 使用 GoLang 部署 azure 函数
- android - Jetpack Compose 在重新调整大小后保持文本居中对齐
- css - 在 div 中的记分卡上创建 CSS 标记
- php - 如何集成谷歌一键登录?
- reactjs - Material UI:迁移到版本 5 后,useStyles (makeStyles) 的优先级较低