【问题标题】:pass JSON data in ajax and use it in database query在 ajax 中传递 JSON 数据并在数据库查询中使用它
【发布时间】:2014-11-30 04:27:02
【问题描述】:

我想通过 $.getJSON 中存储在本地存储中的 'user_data' 并执行 php mysql 查询。我使用的代码是:

<script>
 data = localStorage.getItem("user_data");

   $(document).ready(function(){

  $.getJSON("query.php"  , {user: data},

    function(data){ /*do something*/

  });

  });
  </script>

查询.php

<? php
if( $_REQUEST["user"] )
{
    $user = $_REQUEST['user'];

    $user_data = json_encode($user).id;

    $userid = $user_data.id;

    $username = $user_data.name;

    /*Database connection*/
    include_once("php_includes/db_conx.php");


$sql = /*database query*/;


?>

基本上我在 $.getJSON 中将 user_data 作为字符串传递,然后使用 json_encode 将其更改为 JSON 数据并使用它来获取用户的不同属性。但是我没有在 query.php 中正确获取 $userid 和 $username?谁能告诉我如何发送 JSON 类型的数据并在 php 中使用它。

【问题讨论】:

  • json_encode 生成一个字符串。
  • 1) 您应该改用json_decode。 2) 我想你只想第二次访问.id

标签: php mysql ajax json


【解决方案1】:

基本上,当您从 localStorage 读取数据时,您必须在将数据传递给 PHP 之前对其进行反序列化:

<script>

 data = JSON.parse( localStorage.getItem("user_data") );

 $(document).ready(function(){

  $.getJSON("query.php"  , {user: data},

    function(data){ /*do something*/

  });

 });
</script>

【讨论】:

  • 这不是他问的。 PHP 可以反序列化。不过我明白你的意思
  • 对我有用的是 Zanderwar 和 Adriano 的答案的结合:我使用了 JSON.parse() 和 user_data['id'] 并将 json_encode 放入 php 中,它起作用了。
  • 如果你有时间,请把你的最终代码贴出来,前端/后端sn-ps现在对每个人都有用。
  • @Bonotoc 将被避开并推荐用于代码审查。堆栈不是工作代码的地方
  • 因为 localStorage 将数据存储为字符串,如果您在用户故意将该值更改为无效值时可能会引发一些 PHP json_decode 错误之前不对其进行反序列化。
【解决方案2】:

var_dump($user_data); 添加到query.php 以查看可用的内容,

您应该将 PHP 数组引用为 $user_data['id']

你还需要json_decode($user) 不编码,如果使用 json_decode 你需要引用变量为$user_data-&gt;id 阅读更多关于如何改变json_decode()的输出

还有&lt;? php不正确应该是&lt;?php

您的if 声明也仍然开放。


正如@Adriano 提到的

<script>

 data = JSON.parse( localStorage.getItem("user_data") );

 $(document).ready(function(){

  $.getJSON("query.php"  , {user: data},

    function(data){ /*do something*/

  });

 });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-02
    • 2014-09-03
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 2021-05-18
    相关资源
    最近更新 更多