2013-01-11 58 views
3

我在php中創建了一個數組。我只是想在jQuery的jQuery從PHP獲取數組json_encode

這裏是support.php陣列中的數據吧:

$postData = array(
     "error" => $error, 
     "successInfo" => $successInfo, 
     "email" => $_POST["email"], 
     "subject" => $_POST["subject"], 
     "description" => $_POST["description"], 
); 

echo json_encode($postData); 

我拿什麼使用jquery.getJSON JavaScript端嗎?

在此先感謝!

+0

那麼你不能只是作爲的getJSON它似乎取決於POST數據在那裏 – Esailija

+0

你想對數據做什麼? – dnagirl

+0

你應該[確切地說文檔描述](http://api.jquery.com/jQuery.getJSON/)。 –

回答

2

您可以用這種方式

$.ajax({ 
     type: 'POST', 
     url: 'support.php', 
     success: function(result) { 
     $('#content1').html(result[0]); 
     }, 
    }); 
6

這在很大程度上取決於你想待辦事項做什麼用訪問數組,但這是訪問元素鍵的基本途徑。你可以簡單地使用每個元素的關鍵點運算符:「data.email」等

$.ajax({ 
    type: 'POST', 
    url: 'support.php', 
    success: function(result) { 
     var data = jQuery.parseJSON(result); 
     alert(data.email); 
    } 
}); 

INSERT INTO HTML元素:

我創建一個div id爲「landingPad」和換出警報符合:

$('#landingPad').html(data.email); 

使數據的列表RECEIVED:

然後,我改變了我的div進入一個無序列表:

<ul id="landingPad"></ul> 

改變成功的功能後,從上市收到support.php所有數據:

$(document).ready(function(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'support.php', 
     success: function(result) { 
      var data = jQuery.parseJSON(result); 
      $.each(data, function(index, value) { 
       $("#landingPad").append("<li>" + value + "</li>"); 
      }); 
     } 
    }); 
}); 

創建AJAX數據表單元素:

接下來,我創建了以下形式:

<form name="http://example.com/edit_my_values" action="post"> 
    <div id="landingPad"></div> 
    <input type="submit" name="go" value="Edit Values"/> 
</form> 

然後通過編輯AJAX,我創建了一個表格,可以隨時接收數值:

$(document).ready(function(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'support.php', 
     success: function(result) { 
      var data = jQuery.parseJSON(result); 
      $.each(data, function(index, value) { 
       $("#landingPad").append('<input type="input" name="'+index+'" value="'+value+'"/><br/>'); 
      }); 
     } 
    }); 
}); 

將數據插入到現有表單:

鑑於以下形式:

<form name="http://example.com/edit_my_values" action="post"> 
    <label for="error">Error </label><input type="text" name="error"/><br/> 
    <label for="successInfo">Success </label><input type="text" name="successInfo"/><br/> 
    <label for="email">Email </label><input type="text" name="email"/><br/> 
    <label for="subject">Subject </label><input type="text" name="subject"/><br/> 
    <label for="description">Description </label><input type="text" name="description"/><br/> 
</form> 

您可以填寫與AJAX數據的字段如下:

$(document).ready(function(){ 
    $.ajax({ 
     type: 'POST', 
     url: 'support.php', 
     success: function(result) { 
      var data = jQuery.parseJSON(result); 
      $.each(data, function(index, value) { 
       $('[name='+index+']').val(value); 
      }); 
     } 
    }); 
}); 
+0

這是否工作?我沒有運氣測試過它? –

+0

@jim dif當然,它的作品。我測試了一切。你忘了創建support.php嗎? –

0

這裏是一個全工作版本:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 

     <title>HTML</title> 

     <script src="http://code.jquery.com/jquery-latest.min.js"></script> 

     <script> 
      $(document).ready(function(){ 
       $("#submit").click(function(){ 
        fn_val=$('#fn').val(); 
        ln_val=$('#ln').val(); 
        $.ajax({ 
         type: 'POST', 
         url: 'resp.php', 
         data : {fn: fn_val , ln: ln_val}, 
         success: function(result) { 
          var data = $.parseJSON(result); 
          $("#the_results").append('Associative array returned' + '<BR>'); 
          $.each(data, function(index, value) { 
           $("#the_results").append("index = " + index + ', data = ' + value + '<BR>'); 
          }); 
         } 
        }); 
       }); 
      }); 
     </script> 
    </head> 

    <body> 
     <div> 
      First name: <input type="text" name="fn" id='fn'> 
      Last Name: <input type="text" name="ln" id='ln'> 
      <button id="submit">Pass Data to PHP</button> 
     </div> 
     <div id="the_results"></div> 
    </body> 
</html> 

那是HTML文件,下面是PHP文件resp.php

<?php 
$resp_arr = array('First Name' => $_POST["fn"], 'Last Name' => $_POST["ln"]); 
echo json_encode($resp_arr); 
?> 
+0

他試圖訪問support.php。只是一個小細節,但這可能是爲什麼你沒有讓我的代碼工作。除此之外,它只是複製和粘貼。 –

1

jQuery的

success: function(result) { 
    var obj = jQuery.parseJSON(result); 
    alert(obj.link); 
} 

注意:使用jQuery的。parseJSON()函數,獲取所有數據而不會收到 錯誤。

PHP

提示:如果有任何可能性,陣列可能包含HTML標籤然後對數據進行編碼那樣:

$data['success']='1'; 
$data['link']="<a href='http://stackoverflow.com/' target='_blank' style='color:#68dff0'>Click Here</a>"; 
echo json_encode($data, JSON_HEX_QUOT | JSON_HEX_TAG);