简体   繁体   English

将JSON响应打印为具有键和值的数组

[英]Print json response as array with key and value

I need to print the json response in 'resulte' div as array same as that was sent by php. 我需要在``resulte''div中将json响应打印为与php发送的数组相同的数组。

Upload.php: upload.php的:

$arr=array('username'=>array('isEmpty'=>'required','exists'=>'username exists'),'password'=>array('isEmpty'=>'requiredd'));
echo json_encode($arr);

index.php: index.php文件:

<script src="jquery.min.js"></script>
<script src="jquery.form.min.js"></script> 
<script type="text/javascript">
    function a(){
    $('#submitForm').ajaxForm({
        dataType: 'json',
        success: function(result){
document.getElementById('resulte').innerHTML=”I need to print the response array here like key=>value”;
                }}).submit();
         }
</script>

    <form id="submitForm" name="submitForm" action="upload.php" method="post" enctype="multipart/form-data" >
    File: <input name="myfile" type="file" />
    <input type="button" id="submitBtn" name="submitBtn" value="Upload" onclick="a();" />
    </form>
<div id="resulte" name="resulte"></div>

suppose I don't know the keys and values and how many record is received in index.php. 假设我不知道键和值以及index.php中收到了多少条记录。 so I would like to use some condition here like : 所以我想在这里使用一些条件:

foreach($result as $key=>$value){
if($key==” username”){
echo $key.”=><br />”;
      foreach($value as $k=>$val){
          if($k==” isEmpty”){
             echo $k.”=>”.$val.”<br />”;
}
 }
  }
}

how can I do all those by javascript ? 我该如何使用javascript来完成所有这些工作?

-thanks. -谢谢。

RESOLVED: 解决:

(According to the answer of 'josh') (根据“乔什”的回答)

<script type="text/javascript">
    function a(){
    $('#submitForm').ajaxForm({
        dataType: 'json',
        success: function(result){
for (var key in result) {
  if (result.hasOwnProperty(key)) {
    if(key == "username") {
        document.getElementById('resulte').innerHTML = key + " => <br />";
        for (var k in result[key]) {
          if (k == "isEmpty") {
            document.getElementById('resulte').innerHTML += k + " => " + result[key][k] + "<br />";
          }
        }
    }
  }
}     
                }}).submit();
         }
</script>

Try this. 尝试这个。

var p = {"username":{"isEmpty":"required","exists":"username exists"},"password":{"isEmpty":"requiredd"}};

for (var key in p) {
  if (p.hasOwnProperty(key)) {
    if(key == "username") {
        document.getElementById('resulte').innerHTML += key + " -> " + p[key] + "<br />";
        for (var k in p[key]) {
          if (k == "isEmpty") {
            document.getElementById('resulte').innerHTML += k + " -> " + p[key][k] + "<br />";
          }
        }
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM