2017-02-12 6 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']; Введенными на мобильном телефоне, так извинения, если какие-либо ошибки