如何在PHP中从json_编码数组中提取字符串?
我有一个php文件,它显示用户ID的用户名和密码(通过mysql查询)。用户ID通过jquery发送。我使用json_encode将用户名和密码组合为一个数组。但当我试图从组合(数组)中提取字符串(用户名和密码)时,似乎返回了“整个数组”。如何从json_编码的数组中提取字符串(用户名和密码)?这些是我的代码片段 这是display.php文件如何在PHP中从json_编码数组中提取字符串?,php,jquery,arrays,json,Php,Jquery,Arrays,Json,我有一个php文件,它显示用户ID的用户名和密码(通过mysql查询)。用户ID通过jquery发送。我使用json_encode将用户名和密码组合为一个数组。但当我试图从组合(数组)中提取字符串(用户名和密码)时,似乎返回了“整个数组”。如何从json_编码的数组中提取字符串(用户名和密码)?这些是我的代码片段 这是display.php文件 <?php if(isset($_POST['id'])) { $ID=$_POST['id']; $userQuery = my
<?php
if(isset($_POST['id']))
{
$ID=$_POST['id'];
$userQuery = mysql_query("SELECT * FROM users WHERE userid ='".$ID."'");
$UserArray = mysql_fetch_array($userQuery);
$username=$UserArray[1];
$passWord=$UserArray[2];
$combinedArray = array($username,$passWord);
echo json_encode(combinedArray);
}
?>
但我需要这些字符串在两个独立的变量中
有人能建议一种方法吗?使用
json_decode()
解码json值的步骤
例如,如果$combinedArray的结果值如下所示:
$combinedArray = array(["anandan2345","appleMac2015"]);
$temp = json_encode($combinedArray);
$tempres= json_decode($temp);
for($i=0;$i<count($tempres);$i++)
{
for($j=0;$j<count($tempres[$i]);$j++)
{
echo $tempres[$i][$j].'<br/>';
}
}
$combinedArray=数组([“ananda2345”,“appleMac2015]”);
$temp=json_编码($combinedArray);
$tempres=json_解码($temp);
对于($i=0;$i使用
解码json值的步骤
例如,如果$combinedArray的结果值如下所示:
$combinedArray = array(["anandan2345","appleMac2015"]);
$temp = json_encode($combinedArray);
$tempres= json_decode($temp);
for($i=0;$i<count($tempres);$i++)
{
for($j=0;$j<count($tempres[$i]);$j++)
{
echo $tempres[$i][$j].'<br/>';
}
}
$combinedArray=数组([“ananda2345”,“appleMac2015]”);
$temp=json_编码($combinedArray);
$tempres=json_解码($temp);
对于($i=0;$i您只需更改blow代码即可:
success: function (returnedData) {
$("#userNameDiv").html(returnedData);
$("#passWordDiv").html(returnedData);
}
例如jquery函数$。each()
满足您的需要。您可以学习$。each
您只需更改代码即可:
success: function (returnedData) {
$("#userNameDiv").html(returnedData);
$("#passWordDiv").html(returnedData);
}
例如jquery函数$。each()
以满足您的需要。您可以学习$。each
这应该可以工作。returnedData是由两个项组成的数组。您只需将每个项插入到它自己的div中即可
<script type="text/javascript">
$.ajax({
type: "POST",
url: "display.php",
data:{id:userID},
dataType: 'json',
success: function(returnedData)
{
$("#userNameDiv").html(returnedData[0]);
$("#passWordDiv").html(returnedData[1]);
}
});
</script>
$.ajax({
类型:“POST”,
url:“display.php”,
数据:{id:userID},
数据类型:“json”,
成功:函数(返回数据)
{
$(“#userNameDiv”).html(returnedData[0]);
$(“#passWordDiv”).html(returnedData[1]);
}
});
这应该行得通。returnedData是由两个项组成的数组。您只需将每个项插入到它自己的div中即可
<script type="text/javascript">
$.ajax({
type: "POST",
url: "display.php",
data:{id:userID},
dataType: 'json',
success: function(returnedData)
{
$("#userNameDiv").html(returnedData[0]);
$("#passWordDiv").html(returnedData[1]);
}
});
</script>
$.ajax({
类型:“POST”,
url:“display.php”,
数据:{id:userID},
数据类型:“json”,
成功:函数(返回数据)
{
$(“#userNameDiv”).html(returnedData[0]);
$(“#passWordDiv”).html(returnedData[1]);
}
});
哦,我亲爱的朋友们……我实现了
我避免使用“json_encoded”&在php中使用“infrade”函数连接这些用户名和密码,如下所示
$combinedArray = array($username,$passWord);
echo implode("2015",$combinedArray );
然后在Jquery中,我使用如下的“split”方法
var mystr = returnedData;
/*returndata is the concatenated string echoed by php*/
var myarr = mystr.split("2015");
var un = myarr[0];
var pw = myarr[1];
现在我把这两个字符串命名为“un”和“pw”
感谢您的宝贵贡献
我要特别感谢@Simba…他/她最伟大的建议…!哦,我亲爱的朋友们…我实现了
我避免使用“json_encoded”&在php中使用“infrade”函数连接这些用户名和密码,如下所示
$combinedArray = array($username,$passWord);
echo implode("2015",$combinedArray );
然后在Jquery中,我使用如下的“split”方法
var mystr = returnedData;
/*returndata is the concatenated string echoed by php*/
var myarr = mystr.split("2015");
var un = myarr[0];
var pw = myarr[1];
现在我把这两个字符串命名为“un”和“pw”
感谢您的宝贵贡献
我必须特别感谢@Simba…他/她最伟大的建议…!你所说的两个独立变量中的字符串是什么意思…?我想你只想在username div中显示用户名,在password div中显示密码?@aldrin27:你明白了…!为什么要显示密码?密码应该始终使用单向算法进行散列我喜欢bcrype;读取数据库并从中获取有效密码应该是不可能的。如果您的密码是可读的,那么您就破坏了几乎所有的安全最佳实践。而且,在未验证请求是否合法(即来自帐户所有者)的情况下,您当然不应该从用户表中提供详细信息;只需像这样查询用户ID而不进行任何其他检查,就意味着任何人都可以通过猜测用户ID来读取其他人的帐户详细信息。哎哟。您需要注意的另一件事是,PHP中的mysql_xxx()
函数已被弃用(并将在该语言的下一版本中完全删除)。你应该停止使用它们,转而使用mysqli
或PDO
库。你说的两个独立变量中的字符串是什么意思…?我想你只想在username div中显示用户名,在password div中显示密码?@aldrin27:你知道了…!为什么要显示密码?密码ld总是使用像bcrype这样的单向算法进行散列;读取数据库并从中获取有效密码应该是不可能的。如果您的密码是可读的,那么您就破坏了几乎所有的安全最佳实践。而且,在未验证请求是否为l的情况下,您当然不应该从用户表中提供详细信息egitimate(即来自帐户所有者);只需在不进行任何其他检查的情况下查询用户ID,就意味着任何人都可以通过猜测用户ID来读取其他人的帐户详细信息。哎哟。您需要注意的另一件事是,PHP中的mysql\u xxx()
函数已被弃用(在语言的下一个版本中将完全删除)。您应该停止使用它们,转而使用mysqli
或PDO
库。您能举个例子,使用json_decode()消除组合数组中不需要的字符吗?请给我一个未经解码的结果数组。我将向您演示如何使用json_decode()消除组合数组中不需要的字符。请给我一个未经解码的结果数组。我将向您演示如何使用[“ananda2345”,“appleMac2015”]抱歉…无法理解。您的意思是$each(returnedData)…抱歉…无法理解。您的意思是$each(returnedData)…是的,我也试过了…但是数组索引只给出了一个“单个字符”…似乎“returnedData”是