2012-06-05 3 views
0

Я запускаю скрипт для создания формы заказа, это всего лишь очень маленький образец. Я не очень хорош с PHP и динамическими формами. Он извлекает данные из базы данных mysql.Обработка формы, созданной динамической установкой php/mySql

<td> 
<h3>Round Cuts</h3> 
<?php while($row = mysql_fetch_array($round_cuts)){ 
$round_box_value = @$row["meat_names"]; 
$round_box_value_name = @$row["meat_names"]; 
echo " <input type=\"checkbox\" name=\"round_box_value\" value=\"$round_box_value_name\">  $round_box_value_name"; 
echo "<br>"; 
}?> 
</td> 

Я когда-либо строил только основные формы контактов, как я мог обработать динамическую форму, подобную этой. Если все остальное не получится, я бы просто взял все возможные элементы и запрограммировал это, как будто это было не динамично. Однако должен быть лучший способ.

Даже ссылка на сайт будет полезна. Я искал решение. Благодарю.

+0

Почему вы используете '@' для подавления ошибок? И если вы обработали статические формы, в чем разница между динамическими? Они обрабатываются точно так же. – Mike

+0

измените имя на round_box_value [], тогда вы получите хороший массив в $ _POST, чтобы пройти через –

ответ

0

Я буду считать таблицу в качестве первичного ключа id

начать с небольшим изменением в ваших флажков:

<?php 
while($row = mysql_fetch_array($round_cuts)){ 
    echo sprintf('<label><input type="checkbox" name="round_box_value[]" value="%s"> %s</label><br>', $row['id'], $row['meat_names']); 
} 
?> 

Название теперь имеет [] в конце сказать PHP это массив значений + Я положил флажок в ярлыке для удобства.

Затем, когда вы обрабатываете форму, вы можете просто перебирать round_box_value как так

<?php 
foreach ($_POST['round_box_value'] as $id) { 
    // $id is the table reference from your previous table 
} 

// or query all the rows selected 
$ids = array_map('intval', $_POST['round_box_value']); // "basic" sql injection handler 
$sql = "SELECT * FROM table WHERE id IN (".implode(",", $ids).")"; 

должны производить что-то вроде:

SELECT * FROM table WHERE id IN (2,5,7) 
+0

. Он работал, смешивая ваш код, и немного следа, и ошибка привела меня к решению. Цените помощь. – bradpotts

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