Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > хранить выборочные данные Checkbox


Автор: ekodrive 17.9.2011, 15:58
Добрый день всем вот возник у меня такая проблема

index.html
Код

<form id="form1" name="form1" method="post" action="save.php">
  <table width="270" border="1">
    <tr>
      <td width="80">Имя</td>
      <td width="123">Фамиля</td>
      <td width="45">Выбор</td>
    </tr>
    <tr>
      <td>Алексей </td>
      <td>Волков</td>
      <td><label>
        <input type="checkbox" name="ch1"  value="id1" />
      </label></td>
    </tr>
    <tr>
      <td>Дмитрий</td>
      <td>Стоянов</td>
      <td><input type="checkbox" name="ch2"  value="id2" /></td>
    </tr>
    <tr>
      <td>Олег</td>
      <td>Гозманов</td>
      <td><label>
        <input type="checkbox" name="ch3"   value="id3" />
      </label></td>
    </tr>
  </table>
  <input type="submit" name="button" id="button" value="Submit" />
</form>


надо чтоб например когда я выбираю chekbox ch1 и chekbox ch3 в базе заносился данные 
вроде этого...
+--------|--------------|---------|
name    |     famil     |info_id |
-------------------------|---------|        
Алексей| Волков    | id1      |
-------------------------|---------|
Олег     | Гозманов | id3      |
-----------------------------------|

вот нашел что то подобное в форуме  он добавляет только chekbox volume но не понимаю как заносить имя и фамилию.
save.php
Код

<?
connectimsa_mysql();
$chk=$_post['ch'];
foreach ($chk as $cid) {
           mysql_query( "INSERT INTO baza (name, famil,info_id) VALUES ("КАК_ПОЛУЧАТЬ_ИМЯ","КАК_ПОЛУЧИТЬ_ФАМИЛ",$cid)";  
      
 echo"INSERTED!";         

?>


Уже 3 дня  не спится вот думаю каким образом можно делать...:( 



Автор: patap 17.9.2011, 16:47
ну как минимум, передать нужно на сервер имя и фамилию.
как вариант можно в принципе к чекбоксу приделать, а вообще странно задача выглядит

Код

<form id="form1" name="form1" method="post" action="save.php">
  <table width="270" border="1">
    <tr>
      <td width="80">Имя</td>
      <td width="123">Фамиля</td>
      <td width="45">Выбор</td>
    </tr>
    <tr>
      <td>Алексей </td>
      <td>Волков</td>
      <td><label>
        <input type="checkbox" name="ch[]"  value="id1|Алексей|Волков" />
      </label></td>
    </tr>
    <tr>
      <td>Дмитрий</td>
      <td>Стоянов</td>
      <td><input type="checkbox" name="ch[]"  value="id2|Дмитрий|Стоянов" /></td>
    </tr>
    <tr>
      <td>Олег</td>
      <td>Гозманов</td>
      <td><label>
        <input type="checkbox" name="ch[]"   value="id3|Олег|Гозманов" />
      </label></td>
    </tr>
  </table>
  <input type="submit" name="button" id="button" value="Submit" />
</form>


потом на сервере
Код

foreach ($_POST['ch'] as $item)
{
    $data = explode('|', $item);
    mysql_query( "INSERT INTO baza (name, famil,info_id) VALUES ('".$item[1]."".$item[2]."','".$item[0]."')";  
}

Автор: ekodrive 17.9.2011, 16:49
ОГРОООООМНОЕ СПАСИБО!!!

Автор: patap 17.9.2011, 16:49
ну и там, разумеется, при формировании запроса применить проверки разные, mysql_real_escape_string и т.д

Добавлено через 4 минуты и 7 секунд
запрос лучше составить так
 INSERT [INTO] tbl_name [(col_name,...)] VALUES (expression,...),(...),..

 и за один раз потом выполнить, за циклом

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)