На странице есть какое то количество новостей и возле новости есть чекбоксы где пользователь может выбрать определенные новости и добавить их. Вопрос: как это програмно реализуемо? То есть сервер должен понять какие из новостей необходимо добавлять (те что были выбраны чекбоксами).
HTML: <input type="checkbox" name="add[]" value="2" /> <input type="checkbox" name="add[]" value="5" /> или по ключам: HTML: <input type="checkbox" name="add[2]" value="Yes" /> <input type="checkbox" name="add[5]" value="Yes" /> на сервер прийдут только выбранные, примерно в таком формате: PHP: <? $_GET['add'] = array('add'=>array('2','5')); $_GET['add'] = array('add'=>array('2'=>'Yes','5'=>'Yes"));
То есть на сервере сделать что то типа такого for($i=0;$i<count($add);$i++) { if(!empty($arr[$i])) { добавляем в БД } } Да?
PHP: <? foreach($_GET['add'] as $id) { // добавляем в ДБ } // во втором случае: foreach($_GET['add'] as $id=>$value) { // добавляем в ДБ }
А теперь не могу понять как сопоставить отмеченные чекбоксы с соответсвующей новостью. То есть тогда нужно сделать столько же input type=hidden и туда внести заголовок новости? И тогда инпуты по индексу будут совпадать с чекбоксами по индексу? Так?
Храни новости в базе, при выводе новости для value каждого чекбокса прописывай значение айди соответствующей новости из базы. А потом по айди из базы выбирай заголовки. что то вроде PHP: foreach ($add as $id) $cond .= " OR `id` = '" . $id . "'"; $query = "SELECT `title` FROM `news` WHERE `id` = '" . $add[0] . "'" . $cond; Пример немного кривоватый, но чего то сейчас в голову ничего красивше не лезет... главное - идея, и что работает...
Я вот на странице формы делаю так: HTML: <input type="checkbox" name="ch[]" value=1> На сервере: PHP: $ch1=$_GET['ch'];print $ch1[1]; foreach($_GET['ch'] as $id) { print "Множество новостей $id"; } Он мне в $ch1[1] и $id выдает не 1 а on Как быть?
PHP: <form> <?php print_r($_GET); echo '<br />'; for($i=0;$i<10;$i++) echo '<input type="checkbox" name="ch[]" value="'.$i.'" /> '.$i.'<br />'; ?> <input type="submit" value="send" /> </form> понятия не имею, какие проблемы: Array ( [ch] => Array ( [0] => 1 [1] => 6 [2] => 9 ) )
Не знаю, Кос, скопировал твой код, вставил у себя - работает нормально! Может попробуй явно указать method='get' action=$PHP_SELF, но не уверен, что это что-то изменит...