2016-01-16 2 views
0

мой вопрос: можете ли вы POST использовать форму и внутри цикла? У меня есть это из того, что должно дать мне флажок и названия песен рядом с ним, я хочу, чтобы иметь возможность выбрать несколько флажков и отправить их в «process.php», но этот код, который я сделал, не является размещение чего-либо в process.php. если я нажму кнопку «Отправить», не проверив ни один из полей, которые он по умолчанию использует для последнего результата # в моей базе данных, если я проверяю какие-либо или несколько полей, он говорит о своем «неопределенном отключенном 9», который является последним результатом в моей базе данных. если я создаю форму внутри цикла while, я получаю тонну кнопок отправки за результат. Я не уверен, что я делаю неправильно! пожалуйста помогите!!!

Это то, что я должен произойти ⎕ название песни ⎕ название песни два ВВЕСТИ

если вы нажмете представляет в на process.php я должен быть в состоянии использовать «SONG_NAME»

Please select songs: <br> 


      <form method="post" action="process.php"> 
      <?php 
      $servername = "localhost"; 
      $username = "root"; 
      $password = ""; 
      $dbname = "song_selection"; 

      // Create connection 
      $conn = new mysqli($servername, $username, $password, $dbname); 
      // Check connection 
      if ($conn->connect_error) { 
      die("Connection failed: " . $conn->connect_error); 
      } 

      $sql = "SELECT * FROM songs"; 
      $result = $conn->query($sql); 

      if ($result->num_rows > 0) { 
      $a = 1; 

      // output data of each row 
      while($row = $result->fetch_assoc()) { 
      $song_name = $a++; 
      //echo "title: " . $row["title"]. "<br>"; 
      ?> 
      <div width="200"> 


      <label> 
      <input type="checkbox" name="<?php echo $song_name; ?>" value="<?php echo $song_name; ?>" id="CheckboxGroup1_0" /> 
      <?php echo $row['title']; ?></label> 



      </div> 
      <?php 
      } echo '<input type="submit" value="thanks">'; 
      } else { 
      echo "0 results"; 
      } 

      ?> 

      </form> 

      <?php 
      echo $_POST[$song_name]; 
      ?> 
+0

Попробуйте добавить действие в ваш <форма действия = '' метод = 'после'> – Zapp

+0

@Zapp привет спасибо за указание на то, что я включил действие в форму ранее, но он имел тот же результат, похоже, что $ _post не переносит каким-то образом. Я подозреваю, потому что цикл, но я не уверен. –

+0

Как вы обработали форму на странице ** process.php **? Обновите свой вопрос с помощью соответствующего кода. –

ответ

1

$song_name - значение счетчика, а не имя конкретной песни, и вы использовали его в атрибуте value="". Я считаю, что $row['title'] фактическое название песни, поэтому заменить

<input type="checkbox" name="<?php echo $song_name; ?>" value="<?php echo $song_name; ?>" id="CheckboxGroup1_0" /> 

с

<input type="checkbox" name="<?php echo $song_name; ?>" value="<?php echo $row['title']; ?>" id="CheckboxGroup1_0" /> 

А из вашего вопроса:

, если нажать на представляет в process.php я должен иметь возможность использовать «имя песни»

Если это то ваше требование обрабатывать форму, как это:

process.php

foreach($_POST as $key => $value){ 
    echo $key . ": " . $value . "<br />"; 
} 
+0

Hi Rajdeep! Большое вам спасибо за вашу помощь, это полностью исправило мою проблему! Я очень ценю это! –

Смежные вопросы