Изменить перемену при нажатие на кнопку и сохранить переменную в cookie

472
01 февраля 2017, 00:11

Помогите пожалуйста исправить скрипт, мне нужно чтобы при нажатие на кнопку срабатывал скрипт, и сохранил переменную в cookie.

PHP

<?php
if(isset($_GET['id'])){$map_id=$_GET['id'];}
if($map_id=='city1'){
    $map=1;
}elseif($map_id=='city2'){
    $map=2;
}else{
    $map=3;
} 
    $_SESSION['city'] = mysql_fetch_array($map);
    echo $map;
?>

html

<a href="<?= $_SERVER['PHP_SELF'] ?>?id=city1">Москва</a>
<a href="<?= $_SERVER['PHP_SELF'] ?>?id=city2">Сыктывкар</a>
Answer 1

Попробуйте так:

<?php
if (isset($_GET['id'])) {
$map_id = $_GET['id'];
switch ($map_id) {
    case 'city1':
        $map = 1;
        break;
    case 'city2':
        $map = 2;
        break;
    default:
        $map = 3;
}
$_SESSION['city'] = mysql_fetch_array($map); // вот в этом месте вы в сессию сохраняете массив???
// Причем у mysql_fetch_array должен быть нормальный запрос, а не просто переменная.
// Наверное вам нужно переписать эту строку на что то вроде:
//$query = 'SELECT `имя столбца` FROM `имя таблицы` WHERE `имя столбца- условия`="'.$map.'"';
//$_SESSION['city'] = mysqli_query($link, $query);
echo $map; // зачем выводить переменную? отладка?
}

И в HTML, должно быть что то вроде:

<form action="Ваш php скрипт" method="post">
    <input type="hidden" name="id" value="1">
    <input type="submit" name="city" value="Москва">
</form>
<form action="Ваш php скрипт" method="post">
    <input type="hidden" name="id" value="2">
    <input type="submit" name="city" value="Сыктывкар">
</form>
Answer 2

Сделал по интродукции, но не работает.

     if (isset($_GET['id'])) {$map_id = $_GET['id'];
            switch ($map_id) {
                case 'city1':
                    $map = 1;
                    break;
                case 'city2':
                    $map = 2;
                    break;
                default:
                    $map = 3;
        }
        $query = 'SELECT `SESSION` FROM `SESSION_CITY` WHERE `SESSION`="'.$map.'"';
        $_SESSION['city'] = mysqli_query($link, $query);
}

html

<li>
<form action="" method="post">
<input type="hidden" name="id" value="1">
<input class="btn btn-link" type="submit" name="city" value="Киров">
</form>
</li>
<li>
<form action="" method="post">
<input type="hidden" name="id" value="2">
<input class="btn btn-link" type="submit" name="city" value="Сыктывкар">
</form> 
</li>
READ ALSO
Symfony throws TransformationFailedException only on one specific datetime form value [требует правки]

Symfony throws TransformationFailedException only on one specific datetime form value [требует правки]

have a formType with date field $builder->add('passportDate', 'date', array( 'widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'error_bubbling' => true, 'required' => true, 'label' => 'Date given'...

415
Как упростить ссылку в браузере при фильтрации?

Как упростить ссылку в браузере при фильтрации?

На сайте можно фильтровать записи (скажем я хочу отфильтровать по цене)Ссылка становится такой:

465
utf8mb4_unicode_ci и utf8_unicode_ci

utf8mb4_unicode_ci и utf8_unicode_ci

Установил laravel 54

611
Как разбить файловый путь и получить последний элемент?

Как разбить файловый путь и получить последний элемент?

Пытаюсь получить файловый путь в php7:

394