Забрать переменную из выпадающего списка

tossia

Новичок
Здравствуйте,
Искала везде и здесь тоже, но не нашла пока ответа, а он нужен.
У меня создается список пользователей у которых не записаны города.
Я формирую список городов по почтовому индеку (их может быть несльколько с одним и тем же индексом), затем выбираю нужный город, и затем хочу записать этот город к юзеру.
Выглядит всё следующим образом:
Код:
<?php foreach ($all_expats as $expat) { ?>
<tr>
<td><?php echo $expat['id']; ?></td>        
<td><?php echo $expat['codepostal']; ?></td>
<td>
    <select id="villeUpdate<?php echo $expat['id']; ?>" name="villeUpdate<?php echo $expat['id']; ?>">
                            <option selected value='$ville_id'>Sélectionez la ville</option>
                            <option value='1'>Ville 1</option>
                            <option value='2'>Ville 2</option>
                            <option value='3'>Ville 3</option>
      </select>
<td class="text-center bg-warning btn-table">
    <a class=" text-dark font-weight-bold" href = "villeUPDATE.php?expat_id=<?php echo $expat['id'] ?: ''; ?>&ville_id=<?php echo $ville_id ?: ''; ?>&codepost=<?php echo $expat['codepostal'] ?: ''; ?>">
        Modifier
    </a>
</td>
</tr>
<?php } ?>
Когда я выбираю город и затем проверяю value в консоле, то всё корректно.
Но когда я проверяю, что взялось после нажатия на кнопку с переходом на файл villeUPDATE.php, то переменные $expat['id'] и $expat['codepostal'] прекрасно отображены в массиве GET, а вот ville_id остается пустой..
Array
(
[expat_id] => 1
[ville_id] =>
[codepost] => 64700
)
что не так? где прокол?

Форма в моем случае не пойдет. У меня таблица примерно вот такая
Посмотреть вложение 1613857170447.png
То есть обновления городов ведется поштучно
Заранее спасибо за дельные советы
 
Последнее редактирование:

Valick

Новичок
tossia , я очень люблю кошек, но за такой код надо брать за хвост и бить об угол. Прежде чем спросить "что не так", вы пробовали открыть хотя бы одну книгу по РНР?
 

Valick

Новичок
И не только книжки. По сути есть что сказать?
По сути сказать будет, как только появится эта самая суть. Вы кстати код подменили, где было не только обращение к БД из "шаблона", но и соединение с БД там же.
А пока внимательно http://htmlbook.ru/html/select
 
Последнее редактирование:

tossia

Новичок
По сути сказать будет, как только появится эта самая суть. Вы кстати код подменили, где было не только обращение к БД из "шаблона", но и соединение с БД там же.
Не подменила, а упростила для вашего же чувствительного восприятия.
Вам, похоже, неизвестна такая возможность формирования выпадающего списка. Почитайте книги по РНР. Найдете много интересного.

Возвращаясь к сути вопроса. Не важно каким образом формируется выпадающий список.
Я где-то что-то упускаю , что не даёт передать выбранное значение из этого списка
 

AnrDaemon

Продвинутый новичок

Фанат

oncle terrible
Команда форума
Ну мне кажется там все-таки нет ответа, прямого по крайней мере.
Тут скорее надо конкретно про формы рассказывать, для чего они нужны, как работают
 

Фанат

oncle terrible
Команда форума
tossia , я очень люблю кошек, но за такой код надо брать за хвост и бить об угол. Прежде чем спросить "что не так", вы пробовали открыть хотя бы одну книгу по РНР?
Слушай, я конечно и сам грубиян но даже меня коробит
Я вполне допускаю агрессию по отношению к тому кто сам ее проявляет
Но вот так, неспровоцированно, давай ты будешь держать её при себе?
 

Valick

Новичок
Почитайте книги по РНР. Найдете много интересного.
Отвечу картинкой
Посмотреть вложение Снимок экрана от 2021-02-21 11-53-13.png
Я где-то что-то упускаю , что не даёт передать выбранное значение из этого списка
я же дал ссылку на то как правильно оформить select без самодеятельности
 

Valick

Новичок
Я вполне допускаю агрессию по отношению к тому кто сам ее проявляет
Но вот так, неспровоцированно, давай ты будешь держать её при себе?
С моей стороны нет никакой агрессии, исключительно констатация фактов.
"Вам может показаться, что мы квакаем... На самом деле песню мы поём."

P.S. Уверен, что если начну перечитывать ваши темы, то найду не мало различного рода агрессии. ;)
 

Фанат

oncle terrible
Команда форума
С моей стороны нет никакой агрессии, исключительно констатация фактов.
Вот здесь ты очень сильно облажался. Если твои личные отношения с кошками имеют какое-то отношение к фактам, то у меня для тебя плохие новости.

Ты сюда пришел потому что тебя выпинали с другого форума за грубость.
Просто для справки - отсюда тоже могут.
 

Valick

Новичок
Ты сюда пришел потому что тебя выпинали с другого форума за грубость.
Ты видишь, только то, что хочешь видеть. Не выпинали, а ушёл сам бан был только на месяц, а ушёл я оттуда навсегда.
И не за грубость, а за то что указал модератору на злоупотребление служебным положением (и да я считаю, что у модератора больше обязанностей, чем прав, но видимо так считаю только я)
Фанат, не позволяй своему предвзятому отношению ко мне раньше времени ставить на мне крест. Есть такая народная мудрость. "Не обращай внимания на слова, обращай внимание на поступки"

P.S. кошки - всего лишь аллегория.
 

Фанат

oncle terrible
Команда форума
Ну вот держи эти аллегори при себе.
Сюда новый человек приходит хорошо если раз в месяц.
И вываливать на него свои комплексы про кошек с ходу не стоит.
После того как ты объяснил нормально, а тебя послали - тогда да.
Но для этого надо сначала объяснить нормально. А не ваши тычки в примерном направлении
 

tossia

Новичок
Ну мне кажется там все-таки нет ответа, прямого по крайней мере.
Тут скорее надо конкретно про формы рассказывать, для чего они нужны, как работают
Я без формы забираю данные.. Я думала как там можно было бы применить форму, но нет, не выйдет.

Попытаюсь объяснить подробнее.
У меня таблица, которая строится с помощью DataTable. Она строится из данных полученных вот таким запросом в базу данных.
Код:
$expats = "SELECT id, nom, prenom, sexe, birth_year, codepostal, ville FROM all_expats WHERE ville is NULL";
$stmt_expats = $bdd->prepare($expats);
$stmt_expats->execute();
$all_expats = $stmt_expats->fetchALL(PDO::FETCH_ASSOC);
И затем, проходясь по массиву $all_expats обычным форич получаю таблицу.

В таблице, в последней колонке, в каждой строке, имеется ссылка на файл, который позволяет сделать, в данном случае, апдейт.
Для того чтобы передать данные этого, конкретного юзера прописана вот эта строка


<a class=" text-dark font-weight-bold" href = "villeUPDATE.php?expat_id=<?php echo $expat['id'] ?: ''; ?>&ville_id=<?php echo "villeUpdate".$expat['id'] ?: ''; ?>&codepost=<?php echo $expat['codepostal'] ?: ''; ?>">Modifier</a>


Моя проблема заключается в том, что значение из выпадающего списка не забирается..
 

fixxxer

К.О.
Партнер клуба
Ну мне кажется там все-таки нет ответа, прямого по крайней мере.
Если внимательно приглядеться, то это таки классический случай «на танке».
Автор поста ожидает, что вот эта переменная
PHP:
<option selected value='$ville_id'>Sélectionez la ville</option>
будет изменена при выборе варианта из выпадающего списка и при нажатии кнопки подставится вот сюда
PHP:
 villeUPDATE.php?expat_id=<?php echo $expat['id'] ?: ''; ?>&ville_id=<?php echo $ville_id ?: ''; ?>
 

Valick

Новичок
Моя проблема заключается в том, что значение из выпадающего списка не забирается..
А почему оно должно забираться? Вы совершаете переход по ссылке, ссылка формируется на сервере и никакого отношения к отправке формы с селектом не имеет. В данном случае лучше грамотно сделать форму и отказаться от ссылки в пользу кнопки, либо ссылку формировать средствами JS и отправлять на сервер.
P.S. И кстати селект надо тоже форычём собирать, а не хардкорить.
 
Последнее редактирование:

tossia

Новичок
А почему оно должно забираться? Вы совершаете переход по ссылке, ссылка формируется на сервере и никакого отношения к отправке формы с селектом не имеет. В данном случае лучше грамотно сделать форму и отказаться от ссылки в пользу кнопки, либо ссылку формировать средствами JS и отправлять на сервер.
P.S. И кстати селект надо тоже форычём собирать, а не хардкорить.
А как я могу вас заблокировать, чтобы не видеть ни вас, ни ваши сообщения? Пользы ноль, а в эфире только шумы..
ПыСы. Спасибо админам за опцию Игнор
 
Последнее редактирование:

tossia

Новичок
Если внимательно приглядеться, то это таки классический случай «на танке».
Автор поста ожидает, что вот эта переменная
PHP:
<option selected value='$ville_id'>Sélectionez la ville</option>
будет изменена при выборе варианта из выпадающего списка и при нажатии кнопки подставится вот сюда
PHP:
 villeUPDATE.php?expat_id=<?php echo $expat['id'] ?: ''; ?>&ville_id=<?php echo $ville_id ?: ''; ?>
И таки да.. эта переменная.. :) и она записана :)
 
Сверху