Я нуждаюсь в том, чтобы помешать тому, чтобы распределенный фильтр терялся, пролистав, изменив, удалив и(или) искали реестры. Это один из 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");
}
?>
если ты хочешь сохранять только результат, у тебя осталась бы такая вещь:
<?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
и т.д....
Ты не нуждаешься в изменчивом сеансе, в твоей первой линии ты это добавляешь:
<?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>
Способ хранить данные в $_SESSION
он:
session_start()
$_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");
}
В начале страницы ты должен определять переменные сеанса.
<?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>
я вижу, что в сайте ты звонишь ему 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();
$SESSION
например в одномif (isset(Большое спасибо, но в и # 250; n так он не сохраняет informaci и # 243; n. Будет необходимо объявлять [110] например в одном [111]?SESSION['examen1'] != "")
? – Natalia 06.09.2016, 23:41