Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中从json_编码数组中提取字符串?_Php_Jquery_Arrays_Json - Fatal编程技术网

如何在PHP中从json_编码数组中提取字符串?

如何在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文件,它显示用户ID的用户名和密码(通过mysql查询)。用户ID通过jquery发送。我使用json_encode将用户名和密码组合为一个数组。但当我试图从组合(数组)中提取字符串(用户名和密码)时,似乎返回了“整个数组”。如何从json_编码的数组中提取字符串(用户名和密码)?这些是我的代码片段

这是display.php文件

<?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”是