1 Востаннє редагувалося Betterthanyou (04.02.2015 01:06:28)

Тема: Список

Я хочу зробить список що розкривається для вибору скільки записів буде показано на сторінці

<select name="parameter2">
            <option value="5">5</option>
            <option value="10">10</option>
            <option value="20">20</option>
            <option value="40">40</option>
        </select>

створив сесію щоб запам'ятати вибір після оновлення сторінки

if($_POST['parameter2']!='')
        $_SESSION['size'] = $_POST['parameter2'];
    else
        if($_SESSION['size']=='')
            $_SESSION['size'] = 5;

Як зробити так щоб <select name="parameter2"> запам'ятав вибір і після оновлення не змінювався ?

2 Востаннє редагувалося mike (03.02.2015 22:28:13)

Re: Список

вручну змінюйте вибраний опшин на той що треба

 <option value="5" selected>5</option>
Подякували: Betterthanyou1

3

Re: Список

muhasjo так ?

$arr1=array('value=\'05\'>5</option>',
                'value=\'10\'>10</option>',
                'value=\'20\'>20</option>',
                'value=\'40\'>40</option>');

for($i=0;$i<4;$i++)
    {
        if($arr1[$i][7].$arr1[$i][8]==$_SESSION['size'])
            $arr1[$i]='<option selected '.$arr1[$i];
        else
            $arr1[$i]='<option '.$arr1[$i];
    }
<select name="parameter2">
       <?php 
              for($i=0;$i<4;$i++)
                      echo $arr1[$i];
        ?>
 </select>

4 Востаннє редагувалося mike (04.02.2015 13:19:59)

Re: Список

Ну щось типу того. Краще було якби, значення атрибутів були в подвійних лапках, а не ординарних, так краще за стандартом WC3. Але я б по іншому це написав:

<?php 
$arr = array(5, 10, 20, 40);
 
$optionStr ='';
foreach($arr as $arrVal){
     $opt = '<option value="'.$arrVal.'"';
     if($_SESSION['size']== $arrVal){
         $opt .= ' selected';
     }
    $opt .='>'.$arrVal.'</option>';
    $optionStr .= $opt;
}
<select name="parameter2">
       <?php echo $optionStr;   ?>
 </select>
Подякували: Betterthanyou1

5 Востаннє редагувалося Sensetivity (04.02.2015 16:34:33)

Re: Список

if($_POST['parameter2']!='')
        $_SESSION['size'] = $_POST['parameter2'];
    else
        if($_SESSION['size']=='')
            $_SESSION['size'] = 5;

Краще так:

if(isset($_POST['parameter2']))
        $_SESSION['size'] = $_POST['parameter2'];
    else
        if(!isset($_SESSION['size']))
            $_SESSION['size'] = 5;

Або навіть так:

$_SESSION['size'] = (isset($_POST['parameter2'])) ? $_POST['parameter2'] : (!isset($_SESSION['size'])) ? 5 : $_SESSION['size'];
Подякували: Betterthanyou1