2010-06-16 68 views
0

此菜單需要每天更新。我想使用PHP從菜單中添加和刪除項目

<html><head></head><body> 
<h1> Welcome to Burgerama </h1> 

<?php include("menuBuilder.php"); 
showBurgerMenu(); 
?> 

</body></html> 

菜單項存儲在數據庫中。項目有一個顯示字段;如果它打開,該項目應顯示在菜單上。菜單一次只顯示4或5個「特色菜單」,管理員需要輕鬆更改菜單項目。我想編一個像這樣的菜單編輯頁面:

<?php include("burger_queries.php"); 
dbconnect("burger_database"); 

foreach($menuItem in burger_database) 
{ 
    echo createToggleButton($menuItem); 
} 
?> 

..每個菜單項都有一個切換按鈕。理想情況下,該按鈕將被標記爲菜單項,如果項目爲「開」,則爲藍色,如果項目爲「關」,則爲紅色。點擊按鈕在「開」和「關」之間切換

我被困在嘗試獲取按鈕來執行其相應菜單項上的更新查詢。

回答

1

要做到這一點,每個按鈕都需要發送一個表單,然後執行該腳本,使用ajax或定期刷新。的HTML應該是什麼樣子的禁用按鈕的一個例子稱爲字段1會是這樣:

<form id='testform' action='test.php' method='post'> 
<input type='hidden' name='who' value='field_1' /> 
<input type='hidden' name='what' value='enable' /> 
<div class='disabled' onclick='testform.submit()'>Field 1</div> 
</form> 

注意,它有一個包含你的PHP代碼所需要的信息,知道哪些領域需要兩個隱藏字段行動以及這些行動是什麼。另請參閱我已將一個類添加到div容器中,該容器將使用css進行自定義,以實現所需的紅色或藍色背景色。儘管您可能想要進一步設計風格,但可以使用padding:10px;background-color:red;這樣的簡單操作。發送我們使用的表格javascript,但是如果您願意,您可以替換提交按鈕的div。

爲了測試,如果這個工程,將以下代碼在文件的開頭:

if(!empty($_POST)){ 
if(!empty($_POST['who']) && !empty($_POST['what'])){ 
    switch($_POST['what']){ 
    case 'enable': 
     echo 'Actions to enable field '.$_POST['who']; 
    break; 
    case 'disable': 
     echo 'Actions to disable field '.$_POST['who']; 
    break; 
    } 
} 
} 

這可以讓你在正確的時間執行你的按鈕更新查詢。請注意,如果您不打算使用ajax,則應該先刷新頁面,然後才能看到更新的效果。

因爲我假設你有基本的知識並且能夠扣除它,所以我不會再深入瞭解如何從php構建html示例。

希望它有幫助,祝你有美好的一天。

0

該按鈕應提交表單或執行AJAX請求,該請求由PHP腳本處理。該表格包含要切換的產品的標識符。腳本然後執行更新查詢,更新此產品。

0

如果我正確理解這個問題,你的問題是你想要一個按鈕來運行一個執行UPDATE查詢的方法,這意味着問題是基於HTML的,是正確的?不幸的是,我的PHP很生疏,所以我不能給出很好的方法本身的建議,但HTML按鈕應該有(除runat="server"之外)屬性OnClick="MenuMethod",MenuMethod是UPDATE查詢的方法,它應該在你的「burger_queries.php」頁面找到。

此外,將AutoPostback="true"屬性放置在按鈕中可能是個好主意,這樣一旦按下按鈕,菜單就會自動更新。

+0

呃。 。 。 runat =「server」和AutoPostback =「true」是ASP.NET特有的。 – andrewWinn 2010-06-16 12:42:25