现在我正在升级我的网站用户体验,所以我尝试将我的表单从form action修改为ajax。编码现在可以正常工作,服务器端可以更新数据库,但我不知道如何将自定义消息返回给我的用户。
我的html代码。
<form method="post" id="jnfarm_pop">
blablabla...
<button type="submit" class="layui-btn layui-btn-fluid" name="submitbutn" onclick="login();">submit</button>
</form>我的php文件plugin.php
<?php
//coding.....
$final = 'custom wording';
return json_encode(['final' => $final]);
?>我的jQuery
<script>
function login() {
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result) => {
alert($final); //it doesn't work
}).fail(result => {
alert('fail');
});
event.preventDefault();
}
</script>现在alert不工作了,我也在尝试
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result) => {
result = JSON.parse(result); alert(result.final); //not working also
}和
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result = JSON.parse(result)) => {
alert(result.final); //this show alert unidentified
}有人能纠正我的代码吗?
发布于 2020-05-14 19:10:53
变化
return json_encode(['final' => $final]);至
echo json_encode(['final' => $final]); 只有当你在一个return函数中时,PHP才是真正有用的。如果你想输出一些东西给脚本的调用者,那么你需要像往常一样使用echo。
发布于 2020-05-14 19:15:26
要使您的示例工作,请执行以下操作:
将PHP代码从
<?php
//coding.....
$final = 'custom wording';
return json_encode(['final' => $final]);
?>至:
<?php
//coding.....
$final = 'custom wording';
echo json_encode(['final' => $final]);
?>和你的jQuery代码如下:
<script>
function login() {
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result) => {
alert($final); //it doesn't work
}).fail(result => {
alert('fail');
});
event.preventDefault();
}
</script>要这样做:
<script>
function login() {
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result) => {
alert(result);
}).fail(result => {
alert('fail');
});
event.preventDefault();
}
</script>PHP可以通过打印或回显将某些内容返回给ajax调用。ajax不能使用您在PHP中定义的变量。PHP脚本中回显的值将是ajax调用中的结果值。
https://stackoverflow.com/questions/61795834
复制相似问题