传递ajax中的JSON数据并在数据库查询中使用它

时间:2014-11-30 04:27:03

标签: php mysql ajax json

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

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

   $(document).ready(function(){

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

    function(data){ /*do something*/

  });

  });
  </script>

Query.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*/;


?>

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

2 个答案:

答案 0 :(得分:0)

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

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

您还需要json_decode($user)不编码,如果使用json_decode,则需要将变量引用为$user_data->id详细了解如何更改json_decode()的输出

同样<? php不正确应为<?php

您的if声明仍然有效。


正如@Adriano所说

<script>

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

 $(document).ready(function(){

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

    function(data){ /*do something*/

  });

 });
</script>

答案 1 :(得分:0)

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

<script>

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

 $(document).ready(function(){

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

    function(data){ /*do something*/

  });

 });
</script>