2015-07-10 4 views
3

Итак, у меня есть этот цикл foreach, который запускает sql-запрос. Каждая строка печатается в опции. У меня два форума. Тот, который «удаляет» строку и строку, которая «использует» строку. Но когда я отправляю форму, содержимое внутри опции остается пустым. Вот мой код:PHP - post foreach content

Сообщение файл

<?php 

try { 
     $DB = new PDO ('mysql:host=localhost;dbname=pre_messages', $DBuser, $DBpassword); 

      $sql = "SELECT * FROM message"; 


      ?> 
       <html> 
        <form action="action.php" method="post"> 
        <select><?php 
         foreach ($DB->query($sql) as $row) 
           { 
         ?> 
          <option name="content" value="<?php echo $row['Title']; ?>"><?php echo $row['Title']; ?></option> 
         <?php } ?> 
        </select> 
         <br /><input type="submit" value="use" name="use"> 
         <input type="submit" value="delete" name="delete"> 
       </form> 
       </html> 

action.php

<?php 
    require_once 'hidden/session.php'; 

    $delete = $_POST['delete']; 
    $use = $_POST['use']; 
    $content = $_POST['content']; 


    try { 
      $DB = new PDO ('mysql:host=localhost;dbname=pre_messages', $DBuser, $DBpassword); 

       $delete = "DELETE FROM message WHERE title='$content'"; 
     if (isset($delete)){ 
      $DB->exec($delete); 
     } 

} 
catch (PDOException $e) 
{ 
    echo $e->getMessage(); 
} 
+0

Вы не написали команду 'execute' и' fetch data' в выбранном вами запросе !! – Saty

+0

вам нужно добавить атрибут 'name' в' ', а не на '

ответ

1

Для того, чтобы оставлять сообщения вы должны дать имя вашему контролю. Вы указали свойство имени для параметра, но в выборе нет свойства имени. Вот почему значение этого элемента управления не публикуется. Следовательно, когда вы пытаетесь получить к нему доступ как $ content = $ _POST ['content']; , это дает вам пустое значение.

Попробуйте это:

<html> 
    <form action="action.php" method="post"> 
     <select id="content" name="content"> 
      <?php foreach ($DB->query($sql) as $row) { ?> 
       <option value="<?php echo $row['Title']; ?>"><?php echo $row['Title']; ?></option> 
      <?php } ?> 
     </select> 
     <br /> 
     <input type="submit" value="use" name="use"> 
     <input type="submit" value="delete" name="delete"> 
    </form> 
</html> 

Надеется, что это помогает !!

+1

Спасибо, это работает! Я рад, что это была не большая ошибка. – ltv