首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从php返回一个值到$.get

从php返回一个值到$.get
EN

Stack Overflow用户
提问于 2020-05-14 19:07:10
回答 2查看 35关注 0票数 0

现在我正在升级我的网站用户体验,所以我尝试将我的表单从form action修改为ajax。编码现在可以正常工作,服务器端可以更新数据库,但我不知道如何将自定义消息返回给我的用户。

我的html代码。

代码语言:javascript
复制
<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

代码语言:javascript
复制
<?php
  //coding.....
  $final = 'custom wording';
  return json_encode(['final' => $final]);
?>

我的jQuery

代码语言:javascript
复制
<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不工作了,我也在尝试

代码语言:javascript
复制
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result) => {
    result = JSON.parse(result); alert(result.final); //not working also
}

代码语言:javascript
复制
jQuery.get('plugin.php?id=cc&do=dd', jQuery('#jnfarm_pop').serialize(), (result = JSON.parse(result)) => {
     alert(result.final); //this show alert unidentified
}

有人能纠正我的代码吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-14 19:10:53

变化

代码语言:javascript
复制
return json_encode(['final' => $final]);

代码语言:javascript
复制
echo json_encode(['final' => $final]); 

只有当你在一个return函数中时,PHP才是真正有用的。如果你想输出一些东西给脚本的调用者,那么你需要像往常一样使用echo

票数 2
EN

Stack Overflow用户

发布于 2020-05-14 19:15:26

要使您的示例工作,请执行以下操作:

将PHP代码从

代码语言:javascript
复制
<?php
  //coding.....
  $final = 'custom wording';
  return json_encode(['final' => $final]);
?>

至:

代码语言:javascript
复制
<?php
  //coding.....
  $final = 'custom wording';
  echo json_encode(['final' => $final]);
?>

和你的jQuery代码如下:

代码语言:javascript
复制
<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>

要这样做:

代码语言:javascript
复制
<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调用中的结果值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61795834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档