2015-05-05 107 views
0

我在PHP代碼中有一個名爲$final_value的變量。我試圖通過$.ajax將它傳遞給一個jQuery文件,但我無法這樣做。任何幫助將不勝感激。需要使用AJAX將PHP變量傳遞給jQuery的幫助

HTML(test.php的)

<body> 
    <h1>Test</h1> 
    <p class="result"> 
    <?php    
     $final_value = 27.00;    
     echo '<strong>'.$final_value.'</strong>'; 
     echo json_encode($final_value); 
    ?> 
    </p> 
    <p id="test"></p>   
</body> 

jQuery的

$(document).ready(function(){ 
    createValue(); 

    function createValue(){   
    $.ajax({ 
     url: 'http://localhost/test.php', 
     method: 'post',    
     dataType: 'json', 
     success: function(output){ 
      $('#test').append(output); 
     }, 
     error: function(){ 
      alert('error'); 
     } 
    }); 
    } 
}); 
+0

嗯,你test.php的文件包括非JSON數據....所以從該文件的響應將是一個HTML文件,因此不可分割。嘗試取下dataType:'json'和console.log(輸出)來查看你得到的。然後你可以開始操作輸出的過程來匹配你想要的。 – Taplar

+0

@Taplar我認爲我將把它改爲'dataType; 'html',看看事情是如何解決的,因爲我的PHP代碼是HTML文件的一部分。仍然在研究如何從HTML獲取'$ final_value'。 –

回答

1

你的PHP腳本返回的HTML,而不是JSON。所以在AJAX調用中使用dataType: 'html'。但是你不應該在HTML附近有<body>--它將被插入到已經在主體中的DIV中,並且在同一個文檔中不能有多個<body>標籤。

您可以在PHP擺脫echo json_encode($final_value);,這是沒有必要的。

或者更改PHP,所以它只有回聲JSON - 擺脫它周圍的所有HTML。然後你的jQuery代碼將需要包裝的響應轉換成HTML,並把它添加到DOM:

$.ajax({ 
    url: 'http://localhost/test.php', 
    method: 'post',    
    dataType: 'json', 
    success: function(output){ 
     $('#test').append("<strong>" + output + "</strong>"); 
    }, 
    error: function(){ 
     alert('error'); 
    } 
}); 
+0

啊我明白了。如果我使用'dataType:'html'',我將如何獲取它來檢測php的$ final_value部分? –

+1

將響應放入DIV中,然後使用'$(「#div」)。find(「strong」)。text()'來獲取值。 – Barmar

+0

那麼在這種情況下就不需要ajax了。我們可以直接檢測HTML文件中的值。謝謝。 –