2012-02-08 233 views
2
返回的HTML標記相處的值

我用下面的使用來獲取一些HTML Jquery的:與阿賈克斯jQuery的

的index.php

$.post(
    'get-products.php', 
    $("#offerForm").serialize() + '&lastid=' + highest, 
    function(data) {    
     $('#demo').html(data); 
    } 

是否有可能也獲取的值從GET-products.php變量,例如:

GET-products.php

<? echo $htmlOutput; 
echo $variable; ?> 

的index.php

$.post(
    'get-products.php', 
    $("#offerForm").serialize() + '&lastid=' + highest, 
    function(data) { 
     $('#demo').html(data); 
     //variable processing statement goes here 
    } 

回答

2

您應該嘗試使用JSON進行通信。 這樣在GET-products.php您可以返回編碼包含你的HTML數組JSON,一些變量 然後在jQuery的你會得到data.variable1,data.variable2等..

通過做吧呼叫後用第三個參數( 「JSON」) http://api.jquery.com/jQuery.post/

$.post(
     'get-products.php', 
     $("#offerForm").serialize() + '&lastid=' + highest, 
     function(data) {    
      $('#demo').html(data.html); 
      variable1 = data.variable1; 
     } 

而在GET-products.php回報

echo json_encode(array('html' => '<div>some html</div>', 'variable1'=>xxxx)); 
+0

參數數據類型是沒有必要的BTW,但它是安全的。 – giorgio 2012-02-08 13:17:52

0

是的,你可以使用JSON了點。例如:

<?php 
$html = "<p>some html</p>"; 
$data = array('key' => 'value'); 
$output = json_encode(array('html' => $html, 'data'=>$data)); 
echo $output; 
?> 

現在jQuery中獲取的數據等:

function(data) { 
    $('#demo').html(data.html); 
    // and do something with data.data 
    alert(data.data.key); // alerts "value" 
} 
0

你可以,而不是從你的get-products.php頁返回JSON,像這樣:

<? 
    $arr = array('htmlOutput' => $htmlOutput, 'otherVariable' => $variable); 
    echo json_encode($arr); 
?> 

的jQuery:

$.post(
    'get-products.php', 
    $("#offerForm").serialize() + '&lastid=' + highest, 
    function(data) { 
     $('#demo').html(data.htmlOutput); 
     var x = data.otherVariable; 
    } 
) 
0

JSON是最好的選擇的網址,但如果由於某種原因,你無法實現這一點,您可以設置對數據屬性返回html中的外部元素,然後使用jQuery.data()來讀取它。

HTML

<div class="response-outer" data-variable-name="value"> 
... 
</div> 

注:該數據屬性將由jQuery的自動解析和如果它是在JSON格式將被轉換成一個javascript對象

jQuery的

$.post(
    'get-products.php', 
    $("#offerForm").serialize() + '&lastid=' + highest, 
    function(data) { 
     $('#demo').html(response); 
     var x = $("#demo").find(".response-outer").data("variable-name"); 
    } 
) 
0

有有幾個選項可以做到這一點,這取決於你的數據。它們都基於相同的概念:將數據添加到DOM。

您可以返回一個隱藏的輸入,在它的一些值:

<input id=data-object type=hidden value=myvalue /> 

這適用於單件,小值。

您可以將數據添加到相關的DOM元素:

<div id=some-div custom-value=myvalue> 

這樣你可以附加額外的信息到特定元素周圍的DOM

您可以添加腳本標籤中一個JavaScript對象,與客戶端代碼訪問它:

<script type=text/javascript> 
var myData = {attribute: value, someObject:{anotherAttribute: value}}; 
</script>