1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Вопрос по форме...

Тема в разделе "Web Coding", создана пользователем Mr.Friction, 19 янв 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Mr.Friction

    Mr.Friction

    Регистр.:
    14 ноя 2006
    Сообщения:
    176
    Симпатии:
    10
    Есть вот такая форма...
    PHP:
    <form action="<?php echo $link?>" method="get" name="frmsearch">

            <?php echo $output?> <br /><b>Искать:</b>
    <input type="radio" name="mambot_used" value="0" checked="checked">
        <?php
            
    for($i=0;$i<count($listBot);$i++){
                
    $k $i+1;
                
    ?>
                <input type="radio" name="mambot_used" value="<?php echo $k?><?php if(!empty($bot_used) && $k == 0){ echo 'selected="selected"'; } ?> ><label for="<?php echo $k?>"> <?php echo $listBot[$i]->name ?> </label>
                <?php
            
    }
            
    ?>
        </div>
        <input type='hidden' name='checkBot' value='1' id="checkBot" />
        <input type="hidden" name="option" value="com_search_adv" />
        <input type="hidden" name="Itemid" value="<?php echo $_Itemid?>" />    
    </form>

    как сделть, чтоб при value="0" передавалось значение checkBot' value='0' а при всех остальных checkBot' value='1' - тоесть как сейчас и передаётся.
     
  2. pk2002

    pk2002

    Регистр.:
    14 ноя 2006
    Сообщения:
    382
    Симпатии:
    350
    Если checkBot зависит только от mambot_used, то не понимаю нафига он тебе нужен в форме
    При получении формы проверь mambot_used и присваивай checkBot соответствующее значение

    $checkBot = ($_GET['mambot_used'] == 0) ? 0 : 1;
     
  3. Mr.Friction

    Mr.Friction

    Регистр.:
    14 ноя 2006
    Сообщения:
    176
    Симпатии:
    10
    Поясню - это я пытаюсь переделать из формы селект в форму радио (под джуму).
    На селект стояла такая простая функция на яве <script type="text/javascript">
    function execute_search(){
    obj_selectbox = document.getElementById('mambot_used');
    selected_index = obj_selectbox.selectedIndex;
    if(selected_index > 0){
    document.getElementById('checkBot').value = 1;
    }
    }
    </script>

    а вот переколбасить эту функцию под radio невыходит.

    полный код выглядит вот так:
    PHP:

    $button            = $params->get( 'button', '' );
    $button_pos        = $params->get( 'button_pos', 'left' );
    $button_text    = $params->get( 'button_text', _SEARCH_TITLE );
    $width             = intval( $params->get( 'width', 20 ) );
    $text             = $params->get( 'text', _SEARCH_BOX );
    $set_Itemid        = intval( $params->get( 'set_itemid', 0 ) );

    $output = '<input name="searchword" id="mod_search_selector_searchword" maxlength="20" alt="search" class="inputbox'. $moduleclass_sfx .'" type="text" size="'. $width .'" value="'. $text .'"  onblur="if(this.value==\'\') this.value=\''. $text .'\';" onfocus="if(this.value==\''. $text .'\') this.value=\'\';" />';

    if ( $button ) {
        $button = '<input type="submit" value="'. $button_text .'" class="advanced_search_button'. $moduleclass_sfx .'"/>';
    }

    switch ( $button_pos ) {
        case 'top':
            $button = $button .'<br/>';
            $output = $button . $output;
            break;

        case 'bottom':
            $button =  '<br/>'. $button;
            $output = $output . $button;
            break;

        case 'right':
            $output = $output . $button;
            break;

        case 'left':
        default:
            $output = $button . $output;
            break;
    }

    // set Itemid id for links
    if ( $set_Itemid ) {
        // use param setting
        $_Itemid    = $set_Itemid;
        $link         = 'index.php?option=com_search_adv&amp;Itemid='. $set_Itemid;
    } else {
        $query = "SELECT id"
        . "\n FROM #__menu"
        . "\n WHERE link = 'index.php?option=com_search_adv'"
        . "\n AND published = 1"
        ;
        $database->setQuery( $query );
        $rows = $database->loadObjectList();
        
        // try to auto detect search component Itemid
        if ( count( $rows ) ) {
            $_Itemid    = $rows[0]->id;
            $link         = 'index.php?option=com_search_adv&amp;Itemid='. $_Itemid;
        } else {
        // Assign no Itemid
            $_Itemid     = '';
            $link         = 'index.php?option=com_search_adv';    
        }
    }

    $query = "SELECT name, folder, element, published, params"
            . "\n FROM #__mambots"
            . "\n WHERE published >= 1"
            . (isset($gid) ? "\n AND access <= " . (int) $gid : '')
            . "\n AND folder = 'search'" 
            . "\n ORDER BY ordering"
            ;
    $database->setQuery( $query );
    $listBot = $database->loadObjectList();

    $bot_used = mosGetParam($_REQUEST,'mambot_used');
    ?>

    <form action="<?php echo $link?>" method="get" name="frmsearch">
        <div>
            <select name="mambot_used" id="mambot_used" onchange="execute_search()">
            <option value="0"> - All  - </option>
            <?php
            
    for($i=0;$i<count($listBot);$i++){
                
    $k $i+1;
                
    ?>
                <option value="<?php echo $k?><?php if(!empty($bot_used) && $k == $bot_used){ echo 'selected="selected"'; } ?><?php echo $listBot[$i]->name ?> </option>
                <?php
            
    }
            
    ?>
            </select>
        </div>
        <div class="search<?php echo $moduleclass_sfx?>">
            <?php echo $output?>
        </div>
        
        <input type='hidden' name='checkBot' value='0' id="checkBot" />
        <input type="hidden" name="option" value="com_search_adv" />
        <input type="hidden" name="Itemid" value="<?php echo $_Itemid?>" />    
    </form>
    <script type="text/javascript">
    function execute_search(){
        obj_selectbox = document.getElementById('mambot_used');
        selected_index = obj_selectbox.selectedIndex;
        if(selected_index > 0){
            document.getElementById('checkBot').value = 1;
        }
    }
    </script>


    после моих переделак поменялась только форма.
    а вот как доделать эту хрень - не понимаю.

    Добавлено через 15 минут
    Всё спасибо сделал - поставил в обработчик....
    Просто думал, что можно где-то в форме обойтись.
     
Статус темы:
Закрыта.