2014-02-13 68 views
-1

我想通過一個按鈕來改變我的日期變量$date='date DESC'$date='ASC'。 我有一個提交按鈕解決了這個問題,但我我想知道我這是我的網頁被再次加載。我怎樣才能改變一個PHP變量與一個按鈕

<form action='' method='post'> 
    <button name='submit' value='0'>down</button> 
    <button name='submit' value='1'>up</button> 
    </form> 

PHP代碼

if($_POST['submit']==0)  { $datum='date DESC'; } 
else if($_POST['submit']==1) { $datum='date ASC'; 

} 
+4

如果你不想讓你的頁面重新加載再次,我認爲你必須使用AJAX來代替( AJAX調用PHP腳本)。對我來說,最好的解決方案是使用jQuery使用$ .ajax原型或$ .post原型;因此,我認爲這是你要找的:https://api.jquery.com/jQuery.post/。如果你不希望使用AJAX,隨意只能使用JavaScript,並且一旦你生成一個包含所有你需要什麼,隱藏和顯示的div按幾個按鈕的頁面,但它是值得做的,當你可以輕鬆使用AJAX? :) – briosheje

+0

不重新加載你需要AJAX。 PHP是服務器端,一旦頁面被完全加載,每一個改變都需要重新加載。 –

+0

謝謝...有一點點我網研究我解決了我的問題 – donbenni

回答

2

你需要的,如果要加載的頁面只有某些部分或不提交給在這裏使用AJAX。基本上如果你不想改變頁面。

讓我們給一些標識的按鈕。

<button id="b1" onclick="send_data(this.value)" value='0'>down</button> 
<button id="b2" onclick="send_data(this.value)" value='1'>up</button> 

現在我們將創建Ajax對象

var ajaxObject; 

if(window.XMLHttpRequest) 
{ 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    ajaxObject = new XMLHttpRequest(); 
} 

else 
{ // code for IE6, IE5 
    ajaxObject = new activeXObject("MICROSOFT.XMLHTTP"); 
} 

我們創建將數據發送到服務器的功能。這將採取數據並將其作爲GET條目發送到您的PHP頁面。

function send_data(value) 
{ 
ajaxObject.open("GET","phppage.php?submit=" . value . ,true); 
ajaxObject.send(); 
} 

你的php代碼應該在後端工作得很好。

這是使用ID的兩個不同的ID(即兩個獨立的按鈕來完成。但同樣的事情可以使用的形式和一些細微的修改來實現。

另一種繁瑣的解決辦法是簡單的提交和處理過程之後,在一個新的頁面(空白窗口,新窗口等)。:)

希望這有助於..

1

你的PHP代碼解釋在服務器端,但你按一下按鈕是客戶端操作。您需要將信息傳送到服務器(你想改變一個PHP變量的值),而這個「傳輸」被稱爲HTTP請求,這就是你們所說的「重新載入頁面」。您可以使用Ajax發出異步請求,但它必須發生。順便說一句,如果你想訂購另一個HTML元素(也許你的日期是在<select>元素?),你應該使用Javascript,而不是PHP對它進行排序。

相關問題