чекбоксы

Тема в разделе "PHP программирование", создана пользователем Kauperwood, 4 июн 2011.

  1. Kauperwood

    Kauperwood Гость

    предположим дано:

    Код (PHP):
    function paste_in_textarea() {
    function edit_content() { //cоздать ссылки на страницы которые уже есть в базе
    $tpl="";
    $sql = mysql_query('SELECT * FROM content');// выводим поля, ссылки и чекбокс
    while($record = mysql_fetch_array($sql)) {
    $tpl .= '<tr><td>'.$record['pageid'].': '.$record['pagetittle'].'</td><td>
    <a href="'
    .$_SERVER['PHP_SELF'].'?action=paste_in_textarea&pageid='.$record['pageid'].'"><img src="collapsed.gif"/></a>
    <a href="'
    .$_SERVER['PHP_SELF'].'?action=paste_in_textarea&pagedel='.$record['pageid'].'&delete=y"><img src="close.png"/></a>



    <input type="checkbox" name="chekthis" value="Yes" />
    </td>'
    ;

    }

    return $tpl;
    }//edit_content()
    ////paste_in_textarea.....
    Нужно определить какой контент будет отображаться на сайте, а какой еще "сырой" и требует редакции
    цель зайти на страницу с уже ранее отмеченными чекбоксами. пока в голову только пришло добавить поле в бд. только не знаю как автоматически отметить галочки
    подскажите пожалуйста как лучше сделать запоминание чекбоксов после перезагрузки формы ?
     
  2. Kauperwood

    Kauperwood Гость

    не знаю правильно ли я все понял, - добавил поле в бд, и по нем начал смотреть, как то так, странно конечно это все, особенно с $val-ом....
    работает через раз!
    потом напрягает каждый раз жать редактировать для того что бы галку записать и тд - это другая тема
    Код (Text):
    function paste_in_textarea() {
    function edit_content() { //cоздать ссылки на страницы которые уже есть в базе
    $tpl="";
    $sql = mysql_query('SELECT * FROM content');// выводим поля, ссылки и чекбокс
    while($record = mysql_fetch_array($sql)) {
    if($record['cheked']==1){ $cheked = "Checked"; $val=0;}
    if($record['cheked']==0){ $cheked = "noChecked";$val=1;}

    $tpl .= '<tr><td>'.$record['pageid'].': '.$record['pagetittle'].'</td><td>
    <a href="'.$_SERVER['PHP_SELF'].'?action=paste_in_textarea&pageid='.$record['pageid'].'"><img src="collapsed.gif"/></a>
    <a href="'.$_SERVER['PHP_SELF'].'?action=paste_in_textarea&pagedel='.$record['pageid'].'&delete=y"><img src="close.png"/></a>
    <input type="checkbox" name="chek" value="'.$val.'" '.$cheked.'/>
    </td>';

    }

    return $tpl;
    }//edit_content()
    .....
    вот теперь когда сохряняю, пишет мол ундефинатед индекс про место где сохраняется значения чекбокса, тю так если я его обнулю - работать не будет, какое ему значение надо?
     
  3. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Моя ничего не понять. ДАвайте сначала - что и как надо, и как вы хотите это реализовать.
     
  4. Kauperwood

    Kauperwood Гость

    создал новое поле - "cheked",
    в функции paste_in_textarea() есть код "если кнопка save - апдейт контент" - туда вписал это поле "cheked". Поле чекед допустим или 1 или 0
    Нужно добиться того что бы если отмечен чекбокс, он был отмечен после рефрешей и прочего подобного деяния
    мы знаем что если в инпут записать "cheked" флажок ставится,
    Код (PHP):
     
    sql = mysql_query('SELECT * FROM content');// выводим поля, ссылки и чекбокс
    while($record = mysql_fetch_array($sql)) {
    if($record['cheked']==1){ $cheked = "Checked"; $val=0;}
    if($record['cheked']==0){ $cheked = "noChecked";$val=1;}

    <input type="checkbox" name="chek" value="'.$val.'" '.$cheked.'/>
    Вот оно вроде и работает, ставит флажок, снимает, а иногда не хочет ставить и снимать!
     
  5. Kauperwood

    Kauperwood Гость

    потом я тут немного подумал, вообщем после этой проблемы хочу распространить влияние этих чекбоксов на сайтмап, общее меню и еще некоторые мелочи, надо только вот для начала разобраться как эти чекбоксы будут работать
     
  6. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Во-первых
    Это кто такое Придумал? 5 за логику, 2 за знание html. Нету такого атрибута. Если не надо галка, чекед просто не пишется.
    Во-вторых
    Не просто checked, а checked="checked", снова 2 за знание html.
    В-третьих
    Отладчик и трассировка по шагам очень полезная штука. Настройте себе xdebug.
    И в четвертых.
    Перед тем как писать, стоит сначала поставить себя на место того, кто будет читать. Ну выражайте свои мысли так, что бы их можно было понять, и выражайте только те, которые надо. Как-то так.
    Сори если грубо.

    Добавлено: И еще могу выдать ругань по коду, если нервы крепкие и не обидишься)

    Добавлено: И вот еще
    if($record['cheked']==1){ $cheked = "Checked"; $val=0;???Почему 0, когда он вкл?}
    if($record['cheked']==0){ $cheked = "noChecked";$val=1;????Почему 1 когда он выкл?}
     
  7. Kauperwood

    Kauperwood Гость

    Vital я вас понял $cheked = "checked='checked'"
    но не нашел пока решение пролемы,
    не обижусь про ругань по коду, кстати это вы про функцию в функции?
    Код (PHP):
    if($record['cheked']==1){ $cheked = "Checked"; $val=0;
    - даже не знаю что ответить, это какая то магия + немного юмора)

    Добавлено: потом по поводу сохранения, видимо надо добавить отдельную строчку две кода для сохранения в базу?
     
  8. Kauperwood

    Kauperwood Гость

    Вообщем пишу что наконец я решил этот вопрос, но это было все же довольно проблематично
    в этой ветке косвенно был затронут вопрос отображения чекбоксов из бд, но не сохранения в бд.
    Для сохранения нужно скрытое поле (input hidden) и цикл.
     

Поделиться этой страницей