我想传递存储在$ .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中使用它。
答案 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>