2017-02-12 181 views
-2

我正在創建一個應用程序,可讓您設計膳食並添加或刪除配料。但是,我正在努力解決的問題是$ _POST數據。我遇到的問題是我需要一個的按鈕,每 $ _POST數據表提交。

例如,我可以使用視圖菜單按鈕列出配料(如圖所示),但是由於此操作刷新頁面,$ _POST [用餐]數據不再存在。所以當我嘗試去除一種成分時,它可以給我選擇的成分,但不是餐名。

獲取$ _POST數據的正確方法是什麼?我必須基本上爲每個提交作出新的表單和按鈕。我是否需要使用某種AJAX,因此它不一定會刷新頁面,並且我會丟失這些數據?或者我需要使用$ _GET方法?

enter image description here

<?php 
    if (isset($_POST['view_meal'])){ 
     $meal = (string)$_POST['meal_names']; 
     $meal_fk_q = "SELECT item 
         FROM meal_ingredients 
         WHERE meal_name='$meal' 
         ORDER BY item"; 
     $meal_fk_c = $conn->query($meal_fk_q); 
     $option_string = ""; 
     echo "<div class='view_meal_table_wrapper'>"; 
     while ($row = $meal_fk_c->fetch_assoc()){ 
      $view_ingredient = $row['item']; 
      echo "<table class='view_meal_table'> 
         <tr> 
         <td class='view_meal cell'>$view_ingredient</td> 
         </tr> 
        </table>"; 
       $option_string .= "<option>" . $view_ingredient . "</option>"; 
     } 
     echo "</div>"; 
     echo "<form action='createmeal.php' method='post'> 
       <select name='remove_ingredients'> 
       <option disabled selected value> -- Remove Ingredient -- </option>"; 
     echo $option_string; 
     echo "</select> 
       <input type='submit' name='remove_ingredient' value='Remove Ingredient'>"; 

    } 


    if (isset($_POST['remove_ingredient'])){ 
     $ingr = $_POST['remove_ingredients']; 
     $sql = "DELETE FROM meal_ingredients 
       WHERE item='$ingr'"; 

     if ($conn->query($sql) === TRUE) { 
      echo "Record deleted successfully"; 

     } else { 
      echo "Error deleting record: " . $conn->error; 
     }  
    } 


?> 
+0

如果你不想刷新頁面然後AJAX就是這樣。 AJAX是php和javascript的組合。使用它可以與服務器通信,並使用javascript將項目附加到表格中。那麼當所有項目都在那裏時,請像正常表單一樣提交頁面。所有POST數據將在處理頁面上,然後 – NoLiver92

+0

如果您希望在表單提交之間保留信息,那麼您必須確保每次提交併刷新時都將該信息放回到表單中。請參閱'' – RiggsFolly

+0

如果您想使用PHP在頁面重新加載之間存儲數據,則只需使用$ _SESSION存儲'$ _POST'數據。 – Kitson88

回答

0

Ajax是前鋒爲你在這一個辦法。還有更多的負載,你可以添加它來改善,但基礎知識 - 使用jQuery:

var variable-to-send = 42; 
$.ajax ({ 
    type: 'POST', 
    url: 'php_file_location.php', 
    data: {name-in-post: variable-to-send, more: more, andmore: andmore} 
    success: function (response) { 
     // handle the returned details here 
     console.log(response); 
    } 
}); 

然後在PHP你會做$data = $_POST ['name-in-post']; 打在移動這樣的道歉,如果任何錯誤

相關問題