2013-06-26 40 views
0

我想知道如果我點擊一個按鈕,如何更改PHP變量。比方說,我有以下網頁:我如何編輯一個PHP變量,如果我點擊一個按鈕?

_______________________________________________ 
| Menu |   A Webpage    | 
|   |         | 
| - item1 |         | 
| - item2 |         | 
| - item3 |   Content     | 
| - item4 |         | 
|   |         | 
|   |         | 

如果我點擊「物品1」與相關到與該按鈕鏈接的用戶數據頁面的變化。所以與其他項目。

這是目前我的代碼:

<script> 
function test1() 
{ 
alert("Hello World1!"); 
} 
function test2() 
{ 
alert("Hello World2!"); 
} 
function test3() 
{ 
alert("Hello World3!"); 
} 
function test4() 
{ 
alert("Hello World4!"); 
} 


</script> 


    <a id="test1" href="#" onClick="test1();"><h5>item1</h5></a><br /><br /> 
    <a id="test2" href="#" onClick="test2();"><h5>item2</h5></a><br /><br /> 
    <a id="test3" href="#" onClick="test3();"><h5>item3</h5></a><br /><br /> 
    <a id="test4" href="#" onClick="test4();"><h5>item4</h5></a><br /><br /> 

這是足以讓一個窗口顯示或隱藏一個部門或某事。但我想要的是如果一個按鈕被點擊我想改變一個PHP變量。像這樣:

<script> 
function test1() 
{ 
<? $userid == '1'; ?> 
} 
</script> 


    <a id="test1" href="#" onClick="test1();"><h5>item1</h5></a><br /><br /> 

有了這個,我可以很容易地將頁面更改爲用戶想要查看的內容,而無需製作多個頁面。但我的問題是:'我怎麼能做到這一點'?

我想先謝謝大家!

+5

PHP在服務器上運行javascript運行在客戶端上。如果你想改變一個php變量,你將需要發送一個請求到服務器來改變它並重新載入更改後的內容。 – Anigel

+0

你不能像這樣混合php和javascript。一個是服務器端,另一個是客戶端。但是他們之間有一種交流的方式。發佈產生你表格的代碼,我們可以從那裏幫助你。 – Sergio

+0

所以我必須使用post和獲取?你能給我一個基於我上面給出的例子的樣本嗎? – martini1993

回答

1

PHP與JavaScript的語言或語言種類不同。 PHP以線性方式運行,一旦處理完成,您就不能再返回並再次調用函數或更新變量。 PHP將文件頂部的代碼運行到文件底部,當它到達底部時代碼結束。

與您正在尋找的解決方案最接近的將是使用jQuery AJAX來調用PHP腳本來更新變量。它在我看來你想使用AJAX來改變頁面數據。您可以使用以下示例來實現此目的。

$('#menu A').click(function (e) { 
    var jqxhr = $.get('phpscript.php?data=' + $(this).attr('href')); 

    jqxhr.success(function(data) { 
     $('#content').html(data); 
    }); 
}); 

什麼上面會做,當你點擊內<div id="menu" />一個鏈接,它會嘗試從名爲phpscript.php同一目錄中運行的腳本內容。這使用數據變量來確定要返回的頁面數據。一旦完成,它會將你的腳本返回的HTML輸出到#content容器中,例如<div id="content">

我希望我能正確理解你的問題。也請記住,這將需要一點點驗證,檢查你得到一個200 OK,實際上有接收到的數據等

0

使用Ajax,通過這種方式,您可以將某個網頁的內容加載到某個內容中,例如您的示例中的div,而無需重新加載整個頁面。

Ajax & PHP

+0

我會看看它。感謝您的回答。 – martini1993

+0

只需要一些時間來理解這個概念。使用Ajax,您將檢索要訪問的其他頁面的所有HTML內容,以便包含頁眉和頁腳。在正常的Ajax場景中,您的第二頁(您想從中獲取信息的頁面)僅包含要收集的信息並將其放入您想要的容器中。熟悉技術並做一些測試之後,如果您需要一些幫助並關閉該技術,請創建一個新問題。 – Wallack

0

你需要使用Ajax請求來做到這一點。

0

我不明白你爲什麼要更改的PHP變量的值

,因爲執行此頁面後此變量不存在。在那裏,你可以使用一些會話變量

也 如果我們要設置一些衣被合計,我們一個必須賦值運算符(=)

在服務器設置一個PHP變量,你可以使用Ajax調用, 應該有一個頁面來更改值

相關問題