php - 如何使用$_POST获取通过AJAX和Jquery传递的数据?

标签 php jquery ajax

嗨,我正在尝试使用 Ajax 和 Jquery 将简单的 html 数据传递到 php 服务器。所以我做了一个非常简单的脚本:

 <script>
      $("document").ready(function(){
        $(".enviarJson").on("click",function(){
            var valor = $(this).attr("value");
           // alert(valor);
            $.ajax({
              type: "POST",
              dataType: "HTML",
              url: "devolve.php",
              data: valor,
              success: function(data) {
                 alert(data);
              }
            });
            return false;
        });
      });
    </script>

这是 html:

    <form>
    <button class="enviarJson" value="q1?a1">Answer 1</button>
    <button class="enviarJson" value="q1?a2">Answer 2</button>
    </form>

现在我的问题是,在不知道 $_POST[] 的 id 的情况下,如何将数据传递到 devolve.php

例如,使用常规的帖子表单,我可以执行以下操作:

<form action="devolve.php" method="post">
Name: <input type="text" name="name"><br>
<input type="submit">
</form>

然后我可以通过执行以下操作来获取 devolve.php 上的名称:

<?php
  $name = $_POST['name'];
?>

最佳答案

您尚未为您的 POST 数据命名。它被视为一个裸值,这意味着 PHP 没有任何东西可以用作 $_POST 中的键:

data: valor,
      ^---no name

尝试

data: {name:valor},

这将让您使用$_POST['name']

或者,您可以读取原始 POST 数据:

$name = file_get_contents('php://input');

关于php - 如何使用$_POST获取通过AJAX和Jquery传递的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28728243/

相关文章:

php - 比较 2 个 mysql 表并仅更新已更改的记录

php - 如何使用特定实例覆盖 DI 容器依赖项?

javascript - Jquery Flot 不使用 Ajax 调用呈现

javascript - DOM:我无法访问动态创建的元素。怎么了

php - Codeigniter:单击提交按钮后没有记录保存在 mysql 数据库中

php - 为什么使用 XML 作为存储格式?

javascript - 在html中打印javascript数组

javascript - 使用 svg 绘制链接列表 - jquery svg

javascript - 如何获取工具提示小部件中悬停元素的 ID

javascript - 查找包含 AutoCompleteExtender 的 UpdatePanel 的 ID