2017-03-25 73 views
0

我有這個網站,倒計時。一旦時間爲0,我使用來自JS的AJAX請求,然後使用PHP更新新的倒計時和比賽。在新的AJAX請求中,我需要返回兩個值:圖像url和count_down時間。如何從AJAX請求中返回兩個單獨的值?

$.ajax({url: "new_contest.php", success: function(result) { 
    $("#count_down).time(result); 
}); 

我可以用成功函數返回結果,但是我只能返回其中一個結果。我也嘗試從AJAX頁面創建PHP中的session,然後將會話放入JS變量中。但這個過程是非常複雜的,我覺得有一個更簡單的方法來實現這個...

我沒有看到一個很大的需要顯示我的代碼new_contest.php(AJAX頁面),所有的代碼頁面致力於實現輸出這兩個需要的值:)

+0

最populsr的解決方案是使用JSON。 –

+0

@u_mulder你介意提供一個例子嗎?我不認爲我曾經使用JSON ... – user6902601

回答

1

在PHP

<?php 
error_reporting(0); 

$var = array('time' => "2017-12-23 23:23:23",'someval' => 'hello'); 
print_r(json_encode($var)); 

在阿賈克斯

$.post('1.php',{val: 'val'}).done(function(data){ 
    if(data!='null' && typeof data !=='undefined'){ 

    data = JSON.parse(data); 
     $("#count_down").time(data.time); 
     $("#count_up").time(data.someval);  
    } 
}) 
+0

好的愚蠢的問題,但從AJAX頁面。 'time'和'someval'是否代表從AJAX頁面回顯的變量,此頁面正在加載結果... – user6902601

+0

@ user6902601對不起,我放棄了。感謝不downvoting更新我的答案..它所有數組元素從PHP –

+0

你真棒... – user6902601

0

,如果你想從一個php文件拉出多個值,您應使用JSON ...

在HTML文件中

...

<script> 
var xmlhttp = new XMLHttpRequest(); 
var url = "yourphpfile.php"; 

xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     var thisvariable = JSON.parse(this.responseText); 
     yourfunction(thisvariable); //do somthing here for the returned json object 
    } 
}; 
xmlhttp.open("GET", url, true); 
xmlhttp.send(); 



</script> 

然後在你的php文件中

<?php 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 

    echo json_encode($arr); 
?> 

希望這有助於。

+0

你能提供一個簡單的例子嗎?這是更多的評論比答案:) – user6902601

0

如果您將PHP函數的結果放入數組中,則可以使用json_encode($ yourArray);將它作爲JSON返回到前端。

JSON可以在您的AJAX成功調用中訪問,就像PHP數組一樣。 https://www.tutorialspoint.com/json/