【问题标题】:Ajax post to php on same page not workingAjax 在同一页面上发布到 php 不起作用
【发布时间】:2013-06-05 03:32:33
【问题描述】:

我正在尝试将 var 从 jQuery 传递到 PHP。

经过研究,我发现最常见的建议是使用 Post 和 Ajax 执行此操作,并使用 PHP 存储 post var。

我的 PHP 技能非常好,但我的 JavaScript 技能不能说是一样的。

这是我正在做的,但似乎根本不起作用:

  // jquery libray included etc etc
  <script>
   $.ajax({
      type: "POST",
      url: "http://currentpage.com",
      data: "var=value",
      dataType: string
    });
 </script>
 </head>


<body>

<?php
if($_REQUEST["var"] == "value") {
    echo "var passed and stored";
}
?>

【问题讨论】:

  • 数据类型应为“文本”
  • $.ajax() 有一个成功和错误的方法,将它们都添加并在每个中放置一个警报以查看执行的内容以及是否有错误。
  • currentpage.com?var=value会得到什么
  • 如果您将 ajax 请求发送到同一页面,您将获得所有内容作为响应(包括

标签: php javascript ajax


【解决方案1】:
<script>
   $.ajax({
      type: "POST",
      url: "index.php",
      data: {var:'value'},
      dataType: 'text',
      success:function(data){
       // Test what is returned from the server
         alert(data);
      }
    });
 </script>

【讨论】:

  • 我刚刚尝试过,我还尝试按照上面的建议将您的示例中的 dataType 更改为 text ,但它没有用。 php 仍然没有回显它应该发布的消息。我知道php是在服务器上运行的,我也需要添加刷新吗?
  • @TheApptracker:您是否将值包含在 '' 中?我在示例中更新为“价值”
  • 是的,我使用了您目前提供的确切示例data: "{var:'value'}",
  • 那也行不通。我已经在任何$_POST 上将我的php 更改为echo "hello world",而不管vars 是否设置,只是为了测试,它仍然不起作用。 php 应该选择这个还是需要刷新调用?
  • @TheApptracker:我很相信你有跨域问题。当你使用绝对路径时,一些浏览器会认为这是一个跨域请求(即使你没有执行跨域请求)。
【解决方案2】:

试试

<script>
   $.ajax({
      type: "POST",
      url: "http://currentpage.com",
      data: {variablename:'value'},
      dataType: "text", //Available types xml, json, script, html, jsonp, text
      success:function(response){
       //Returned from server
       alert(response);
      }
    });
 </script>

【讨论】:

  • 我也试过这个,但似乎没有,但它没有用。 php 仍然没有回显它应该发布的消息。
  • 您传递的变量的名称是什么?是变种吗?将变量名替换为 testvariable 并在您的服务器中替换为此代码 if($_REQUEST["testvariable"] == "value") { echo "var passed and stored"; }
  • 试试if($_POST["testvariable"] == "value"){ echo "hello world";}别忘了改data:{testvariable:'value'}
  • 还检查您在 chrome 开发人员工具中的控制台或网络选项卡是否请求到达服务器。 shift+ctrl+I
  • 我在控制台中得到了这个send jquery.min.js:4 f.extend.ajax jquery.min.js:4 (anonymous function) htc.sx:10 e.resolveWith jquery.min.js:2 e.extend.ready jquery.min.js:2 c.addEventListener.C
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-01
  • 2015-05-17
  • 1970-01-01
  • 2022-01-01
  • 2017-06-25
  • 1970-01-01
  • 2016-04-29
相关资源
最近更新 更多