Переменная SESSION для формуляра

Я нуждаюсь в том, чтобы помешать тому, чтобы распределенный фильтр терялся, пролистав, изменив, удалив и(или) искали реестры. Это один из 3 неудар в лунку, который я считаю распределенным таблице в sql, три имеют $result.

Как я добавляю переменную $SESSION в это упражнение?

<form action="" method="GET">
    Filtrar por región: 
    <select name="examen1">
        <option>Elija una región ...</option>
        <option value="15">XV Región de Arica y Parinacota</option>
        <option value="1" <?php if(isset($_POST['region']) and $_POST['region'] == 1):?> selected <?php endif;?>>I Región de Tarapacá</option>
        <option value="2" <?php if(isset($_POST['region']) and $_POST['region'] == 2):?> selected <?php endif;?>>II Región de Antofagasta</option>
        <option value="3" <?php if(isset($_POST['region']) and $_POST['region'] == 3):?> selected <?php endif;?>>III Región de Atacama</option>
        <option value="4" <?php if(isset($_POST['region']) and $_POST['region'] == 4):?> selected <?php endif;?>>IV Región de Coquimbo</option>
        <option value="5" <?php if(isset($_POST['region']) and $_POST['region'] == 5):?> selected <?php endif;?>>V Región de Valparaíso</option>
        <option value="13" <?php if(isset($_POST['region']) and $_POST['region'] == 13):?> selected <?php endif;?>>RM de Santiago</option>
        <option value="6" <?php if(isset($_POST['region']) and $_POST['region'] == 6):?> selected <?php endif;?>>VI Región de O´Higgins</option>
        <option value="7" <?php if(isset($_POST['region']) and $_POST['region'] == 7):?> selected <?php endif;?>>VII Región del Maule</option>
        <option value="8" <?php if(isset($_POST['region']) and $_POST['region'] == 8):?> selected <?php endif;?>>VIII Región del Biobío</option>
        <option value="9" <?php if(isset($_POST['region']) and $_POST['region'] == 9):?> selected <?php endif;?>>IX Región de La Araucanía</option>
        <option value="14" <?php if(isset($_POST['region']) and $_POST['region'] == 14):?> selected <?php endif;?>>XIV Región de Los Ríos</option>
        <option value="10" <?php if(isset($_POST['region']) and $_POST['region'] == 10):?> selected <?php endif;?>>X Región de Los Lagos</option>
        <option value="11" <?php if(isset($_POST['region']) and $_POST['region'] == 11):?> selected <?php endif;?>>XI Región de Aysén</option>
        <option value="12" <?php if(isset($_POST['region']) and $_POST['region'] == 12):?> selected <?php endif;?>>XII Región de Magallanes</option>
    </select>
    <input type="submit" value="Buscar">
</form>

<?php 
if (isset($_GET['examen1'])) {
    $PorRegion = ($_GET['examen1']);
    $examen1 = $PorRegion;
    $result = mysqli_query($conn, "SELECT * FROM comunas WHERE region = $PorRegion");
}
?>
0
задан 07.09.2016, 16:18
5 ответов

если ты хочешь сохранять только результат, у тебя осталась бы такая вещь:

 <?php 
        if (isset($_GET['examen1'])) {
            $PorRegion = ($_GET['examen1']);
            $examen1 = $PorRegion;
            $_SESSION['examen1']=$examen1;
            $result = mysqli_query($conn, "SELECT * FROM comunas WHERE region = $PorRegion");
        } 

    ?>

Или ты можешь пытаться с sessionStorage

Резюме методов и свойства sessionStorage:

  • sessionStorage.setItem ('ключ', 'стоимость'); Сохраняй информацию стоимость, на которую будет возможно соглашаться призывая в ключ. Например ключ может быть именем и стоимость может быть Франсиско.

  • sessionStorage.getItem('clave') Верни value определенного ключа. Например, если ключ - имя, может возвращать “Франсиско”.

  • sessionStorage [ключ] =valor Равно как setItem

    и т.д....

0
ответ дан 24.11.2019, 13:28
  • 1
    Большое спасибо, но в и # 250; n так он не сохраняет informaci и # 243; n. Будет необходимо объявлять $SESSION например в одном if (isset(Большое спасибо, но в и # 250; n так он не сохраняет informaci и # 243; n. Будет необходимо объявлять [110] например в одном [111]?SESSION['examen1'] != "")? – Natalia 06.09.2016, 23:41
  • 2
    Это provado с одним я бросаю $ _SESSION [и #39; examen1 и # 39;], чтобы видеть, сохраняет ли или нет он? В teor и # 237; в которое говоришь ты, он не надо. – Lucas D.A.W. 06.09.2016, 23:44
  • 3
    Если, и меня печатает индекс фильтра (ej: 5 = > valparaiso), но меня не печатает результат, поэтому о моменте я подумал в sesionar $result:/ – Natalia 06.09.2016, 23:48
  • 4
    Даже делая print_r ()? – Lucas D.A.W. 09.09.2016, 16:49

Ты не нуждаешься в изменчивом сеансе, в твоей первой линии ты это добавляешь:

<?php 
$_GET['region'] = (isset($_GET['examen1']))?$_GET['examen1']:'';
?>

также замени все они _POST из-за _GET, обрати внимание, что в твоем FORM ты посылаешь данные с method GET

РЕЗУЛЬТАТ:

<?php 
$_GET['region'] = (isset($_GET['examen1']))?$_GET['examen1']:'';
?>
<form action="" method="GET">
        Filtrar por región: 
        <select name="examen1">
            <option>Elija una región ...</option>
            <option value="15">XV Región de Arica y Parinacota</option>
            <option value="1" <?php if(isset($_GET['region']) and $_GET['region'] == 1):?> selected <?php endif;?>>I Región de Tarapacá</option>
            <option value="2" <?php if(isset($_GET['region']) and $_GET['region'] == 2):?> selected <?php endif;?>>II Región de Antofagasta</option>
            <option value="3" <?php if(isset($_GET['region']) and $_GET['region'] == 3):?> selected <?php endif;?>>III Región de Atacama</option>
            <option value="4" <?php if(isset($_GET['region']) and $_GET['region'] == 4):?> selected <?php endif;?>>IV Región de Coquimbo</option>
            <option value="5" <?php if(isset($_GET['region']) and $_GET['region'] == 5):?> selected <?php endif;?>>V Región de Valparaíso</option>
            <option value="13" <?php if(isset($_GET['region']) and $_GET['region'] == 13):?> selected <?php endif;?>>RM de Santiago</option>
            <option value="6" <?php if(isset($_GET['region']) and $_GET['region'] == 6):?> selected <?php endif;?>>VI Región de O´Higgins</option>
            <option value="7" <?php if(isset($_GET['region']) and $_GET['region'] == 7):?> selected <?php endif;?>>VII Región del Maule</option>
            <option value="8" <?php if(isset($_GET['region']) and $_GET['region'] == 8):?> selected <?php endif;?>>VIII Región del Biobío</option>
            <option value="9" <?php if(isset($_GET['region']) and $_GET['region'] == 9):?> selected <?php endif;?>>IX Región de La Araucanía</option>
            <option value="14" <?php if(isset($_GET['region']) and $_GET['region'] == 14):?> selected <?php endif;?>>XIV Región de Los Ríos</option>
            <option value="10" <?php if(isset($_GET['region']) and $_GET['region'] == 10):?> selected <?php endif;?>>X Región de Los Lagos</option>
            <option value="11" <?php if(isset($_GET['region']) and $_GET['region'] == 11):?> selected <?php endif;?>>XI Región de Aysén</option>
            <option value="12" <?php if(isset($_GET['region']) and $_GET['region'] == 12):?> selected <?php endif;?>>XII Región de Magallanes</option>
        </select>
        <input type="submit" value="Buscar">
</form>
1
ответ дан 24.11.2019, 13:28
  • 1
    Большое спасибо! Но, я нуждаюсь в том, чтобы добавить переменные SQL, чтобы разграничивать мою консультацию. В этом случае c и # 243; mo он был бы? – Natalia 07.09.2016, 01:27

Способ хранить данные в $_SESSION он:

  1. Инициализировать сеанс с session_start()
  2. Читать / устанавливаться данные с $_SESSION['nombreLlave']

В твоем случае, ты мог бы устанавливать это перед твоим условием:

session_start();
if (!isset($_GET['examen1'])) {
    $_SESSION['examen1'] = $_GET['examen1'];
}

if (isset($_SESSION['examen1'])) {
    $PorRegion = $_SESSION['examen1'];
    $examen1 = $PorRegion;
    $result = mysqli_query($conn, "SELECT * FROM comunas WHERE region = $PorRegion");
}
0
ответ дан 24.11.2019, 13:28
  • 1
    Большое спасибо! Но в и # 250; n останься, не сохраняя моих изменений:/ – Natalia 07.09.2016, 01:27

В начале страницы ты должен определять переменные сеанса.

<?php
session_start();
$seleccion=""
if (isset($_GET['examen1'])) {
    $_SESSION['examen1'] = $_GET['examen1'];
    $seleccion= $_SESSION['examen1'];
}
?>

Потом в select, ты был бы должен меняться option из-за чего-то сходного с этим

<option value="1" <?php if ($condicion == 1):?> selected <?php endif;?>>I Región de Tarapacá</option>
0
ответ дан 24.11.2019, 13:28

я вижу, что в сайте ты звонишь ему examen1 и в других PorRegion, ты был бы должен называть его равным, например examen1. Кроме того, в случаях ты используешь GET и в других POST, используй например GET:

//Función que devuelve un valor que está guardada en SESSION o se envía por GET
function getValue($name){

    //Asignamos la variable $value a través de la sesión si existe
    $value = (isset($_SESSION[$name])? $_SESSION[$name] : null);

    //Si se envía por GET, capturamos la variable y la guardamos en sesión
    if (isset($_GET[$name])) {
        $value = $_GET[$name];
        $_SESSION[$name]= $value ;
    }
    return $value;
}


//Asignamos un array vació a $result por si no hay resultados
$result = array();
$examen1 = getValue('examen1');


//Si tenemos la variable, sea por SESSION y por GET, hacemos la consulta
if($examen1){
  $result = mysqli_query(
        $conn, 
       "SELECT * FROM comunas WHERE region = $examen1"
  );
}

Кроме того, html у тебя могло бы быть это так:

    <?php $examen1 = getValue('examen1'); ?>
    <form action="" method="GET">
    Filtrar por región: 
    <select name="examen1">
        <option>Elija una región ...</option>
        <option value="15" <?php if($examen1 == 15):?> selected <?php endif;?>>XV Región de Arica y Parinacota</option>
        <option value="1" <?php if($examen1 == 1):?> selected <?php endif;?>>I Región de Tarapacá</option>
        <option value="2" <?php if($examen1 == 2):?> selected <?php endif;?>>II Región de Antofagasta</option>
        <option value="3" <?php if($examen1 == 3):?> selected <?php endif;?>>III Región de Atacama</option>
        <option value="4" <?php if($examen1 == 4):?> selected <?php endif;?>>IV Región de Coquimbo</option>
        <option value="5" <?php if($examen1 == 5):?> selected <?php endif;?>>V Región de Valparaíso</option>
        <option value="13" <?php if($examen1 == 13):?> selected <?php endif;?>>RM de Santiago</option>
        <option value="6" <?php if($examen1 == 6):?> selected <?php endif;?>>VI Región de O´Higgins</option>
        <option value="7" <?php if($examen1 == 7):?> selected <?php endif;?>>VII Región del Maule</option>
        <option value="8" <?php if($examen1 == 8):?> selected <?php endif;?>>VIII Región del Biobío</option>
        <option value="9" <?php if($examen1 == 9):?> selected <?php endif;?>>IX Región de La Araucanía</option>
        <option value="14" <?php if($examen1 == 14):?> selected <?php endif;?>>XIV Región de Los Ríos</option>
        <option value="10" <?php if($examen1 == 10):?> selected <?php endif;?>>X Región de Los Lagos</option>
        <option value="11" <?php if($examen1 == 11):?> selected <?php endif;?>>XI Región de Aysén</option>
        <option value="12" <?php if($examen1 == 12):?> selected <?php endif;?>>XII Región de Magallanes</option>
    </select>
    <input type="submit" value="Buscar">
</form>

В конце концов, помни, что, чтобы использовать сеансы, у тебя должен быть созданный сеанс:

session_start(); 
0
ответ дан 24.11.2019, 13:28