За последние 24 часа нас посетили 18666 программистов и 1599 роботов. Сейчас ищут 974 программиста ...

Помогите с чекбоксами

Тема в разделе "PHP для новичков", создана пользователем cloozis, 4 фев 2009.

  1. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    Выводим список в форме

    <? $quary = mysql_query("SELECT id, name, data FROM listtb");
    $myrow = mysql_feach_array($quary);
    //начало формы
    echo "<form name='form1' method='post' action=''>";
    echo "<input type='submit' name='button' value='Submit'>";
    do
    {
    ///вывожу список где параметр чекбоксов - id
    printf("<input type='checkbox' name='checkbox' value='%s'><br>%s<br>%s", $myrow['id'],$myrow['name'],$myrow['data']);
    }
    while($myrow = mysql_fetch_array($quary));
    ///конец формы
    echo "</form>";
    --------------------------------------------------------------------------------------------------------
    при выборе всех чекбоксов передается всего один параметр , как можно передать все выбранные параметры? Помогите очень нужно!
     
  2. unicross

    unicross Активный пользователь

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Код (Text):
    1. name='checkbox[]'
     
  3. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    не совсем понятно :oops:
     
  4. unicross

    unicross Активный пользователь

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Это признак массива. В PHP это будет преобразовано в массив со всеми выбранными значениями.

    PHP:
    1. if (isset($_POST['checkbox'])) {
    2.    print_r($_POST['checkbox']);
    3. }
     
  5. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    чето понял, а как мне теперь на основе этого масива зделать запрос
    тоесть из
    PHP:
    1. Array ( [0] => 22 [1] => 23 [2] => 28 )
    взять параметры и поместить их в запрос, можно ли так?
    $quary = mysql_query("SELECT id, name, data FROM listtb WHERE id = '$z1,$z2,$z3'");
     
  6. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    PHP:
    1.  
    2. <?
    3. for ($i =0; $i < count($_POST['checkbox']); $i++)
    4. {
    5. $quary = mysql_query("SELECT id, name, data FROM listtb WHERE id = '".$_POST['checkbox'][$i]."'");
    6. }
    7. ?>
    8. как то так! :)
     
  7. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    попробую
     
  8. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    kuliev ага и если 40 чекбоксов у нас будет 40 запросов к базе) не проще ли:

    PHP:
    1.  
    2. <?php
    3.      // где то там были проверки поэтому в $_POST['checkbox'] у нас точно хорошие данные
    4.  
    5.     $query  =  mysql_query("SELECT `id`, `name`, `data` FROM `listtb` WHERE id IN (".rtrim(implode(', ', $_POST['checkbox']), ', ').")");
    6. ?>
    7.  
     
  9. unicross

    unicross Активный пользователь

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    akrinel, А зачем здесь нужна функция rtrim()?
     
  10. kuliev

    kuliev Активный пользователь

    С нами с:
    10 фев 2006
    Сообщения:
    204
    Симпатии:
    0
    Адрес:
    TLT
    Я не думаю, что у не будет 40 чекбоксов, хотя все возможно, я ему показал пример как можно обратиться к данному массиву! А дальше пускай сам думает как снять напряг с мускула, сделать свой скрипт быстрее и т.д.
     
  11. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    Спасибо, все работает
     
  12. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    unicross, так без нее же вроде как будет

     
  13. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
  14. unicross

    unicross Активный пользователь

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    PHP:
    1. <?php
    2. $arr  = array(1, 2, 3, 4, 5);
    3. echo implode(', ', $arr);
    4. ?>
    Вывод
    Код (Text):
    1. 1, 2, 3, 4, 5
    PHP:
    1. <?php
    2. $var[0]  = 1;
    3. echo implode(', ', $var);
    4. ?>
    Вывод
    Код (Text):
    1. 1
    akrinel, я не вижу ", " в конце строки после использования функции implode()... :(
     
  15. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    unicross, а их там и нет) просто я туплю
     
  16. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    [sql]IN ('".implode("','", $_POST['checkbox'])."')[/sql]
    ?