2016-04-29 67 views
0

我一直在閱讀一些關於將JS值存儲到PHP變量的問題,大多數評論都表示使用AJAX。AJAX vs JS。將JS var值存儲到php變量時的差異

AJAX和JS代碼都可以用來存儲JS變量值到一個PHP變量然而有人可以解釋爲什麼大多數人建議使用AJAX?或者有什麼優勢呢我,如果我使用了AJAX JS來存儲值

感謝

+1

_storing值形式JS到PHP變量,最多評論說要用AJAX_ .You've回答自己的問題, 我猜。 – Chay22

+0

當您的頁面需要獲取數據而不刷新時,您可以使用AJAX。 –

+0

您可以在一個請求中發送帶有多個變量的JSON對象,就像@Jose Manuel AbarcaRodríguez所說的那樣,不會讓人耳目一新。在JS中構建JSON對象非常容易,它正在成爲數據傳輸的標準。 –

回答

0

不能PHP的值從JavaScript/jQuery的使用AJAX庫而不

DOM渲染完成後,將不會運行其他PHP。就這樣,一切都完成了。爲了向服務器發送附加數據,您有兩種選擇:(1)將表單發佈到另一個PHP文件,該文件將發送輸入到表單元素中的數據,並將更改/刷新當前頁面。或(2)使用AJAX。

AJAX是一種與單獨的PHP頁面進行通信的方式,無需刷新/更改用戶所在的頁面即可向前/向後發送數據,的AJAX代碼塊看起來是這樣的:

$.ajax({ 
    type: 'post', 
    url: 'ajax.php', 
    data: 'varName=' +varSomething, 
    success: function(d){ 
     if (d.length) alert(d); 
    } 
}); 

$.ajax({ 
    type: 'post', 
    url: 'ajax.php', 
    data: 'varSomename=' +varValue 
}).done(function(){ 
    //success function 
}); 

數據從PHP發回的AJAX代碼塊的success功能是接收(和只有在那裏),它可以被操縱和/或回注到DOM,就像這樣:

$.ajax({ 
    type: 'post', 
    url: 'ajax.php', 
    data: 'thevar=' +theval, 
    success: function(d){ 
     $('#someDIV').html(d); 
    } 
}); 

這裏有一些額外的鏈接重新AJAX:

dynamic drop down box?

Prevent Page Load on Jquery Form Submit with None Display Button


當數據到達指定的PHP文件(在上面的例子中ajax.php),你可以通過$_POST[]變量數據:

<?php 
    $summat = $_POST['someVarname']; 

    //To send data back to the AJAX success function, you just echo it: 
    $out = '<div style="font-size:3rem;color:blue;">'; 
    $out .= $summat; 
    $out .= '</div>'; 
    echo $out 

現在你有一個本地PHP變量中的數據。 PHP文件執行完成後,該變量將不再存在。 要保留PHP變量,請使用$ _SESSION超級變量。爲了使用$ _SESSION變量,你必須添加session_start()到PHP頁面的頂部:

<?php 
    session_start(); 
    $_SESSION['summat'] = $_POST['someVarname']; 

    //Now you have a permanent variable on the server, associated with this user's PHP session