Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вытянуть название из select (https://javascript.ru/forum/misc/70704-vytyanut-nazvanie-iz-select.html)

Dan922 27.09.2017 19:50

Я думаю, что вы просто не знаете как решить этот вопрос.
Не надо мне объяснять то, что я сам сделал.
Просто поставил вас в известность, что тот вариант, который вы мне предложили-не работает. И возвращает пустое поле.
Можете посмотреть мой ответ выше для Dilettante_Pro

И вроде как я вам даже объяснил почему ваш вариант не работает.
Вот вариант который приходит на почту:
Из страны: 3159 
Из региона: 4312 
Из города:  
В страну: 3159 
В регион: 4312 
В город:  
Тип груза: EUR-паллет

"Из города" и в "В город" - это результат отработки вашего метода.

laimas 27.09.2017 19:56

Цитата:

Сообщение от Dan922
Я думаю, что вы просто не знаете как решить этот вопрос.

Я прекрасно знаю как строятся и списки зависимые, и как отправляются, принимаются и проверяются формы, и серверными языками я занимаюсь давно, и что такое почта прекрасно знаю.

Цитата:

Сообщение от Dan922
Просто поставил вас в известность, что тот вариант, который вы мне предложили-не работает.

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

Dan922 27.09.2017 20:00

Вы прикалываетесь?

Да нет, могу.
И он не работает.

А вот вы, судя по всему, код прочли не до конца.

laimas 27.09.2017 20:20

Цитата:

Сообщение от Dan922
А вот вы, судя по всему, код прочли не до конца.

Видал я ваш код, в помойку его, если о нем говорить, все равно дырявый. У вас имя ключа под которым форма отдает ID города не равно имени переменной под которым он вставляется в текст письма. Это ни на какие мысли не наводит?

В двух кустах заблудится и еще лапшу на уши вешаете.

Чтобы сделать проверку чего вернуло, сделайте вывод ошибок при запросе к базе, или будете на кофейной гуще гадать что и как?

Dan922 27.09.2017 20:24

Цитата:

Сообщение от laimas (Сообщение 465747)
Видал я ваш код, в помойку его, если о нем говорить, все равно дырявый. У вас имя ключа под которым форма отдает ID города не равно имени переменной под которым он вставляется в текст письма. Это ни на какие мысли не наводит?

В двух кустах заблудится и еще лапшу на уши вешаете.

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

Я не знаю, кто и что вам там вешает, но вы вроде как не представляете почему ваш метод не работает.

Ради интереса сами постройте это. И посмотрите.

laimas 27.09.2017 20:32

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

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

И при этом вы утверждаете что все понимаете? Я и писал просто как в принципе делается, а не "окончательный код и именно под ваши конкретные данные", думая что вы и понимаете, а далее дело техники как говорят.

Dan922 27.09.2017 20:55

Не утверждал я , что прям все понимаю, иначе бы не обращался за помощью.
Конечно я делаю что-то не так и хочу понять где ошибка и как правильно сделать.

Но все, что вы мне подсказали, я подставил, поменял на свое. Получил ресурс и повесил обработчик и все равно пустое поле.

laimas 27.09.2017 21:15

Цитата:

Сообщение от Dan922
Но все, что вы мне подсказали, я подставил, поменял на свое. Получил ресурс и повесил обработчик и все равно пустое поле.

Ресурс он и в Африке ресурс, его нельзя подставить во что-то как текст.

Вот из вашего кода:

$regs = mysql_query("SELECT name, city_id FROM city WHERE region_id=$region_id");

здесь $regs, это возвращенный запросом ресурс, содержащий множество строк (по крайней мере это ожидается), поэтому далее в цикле извлекается строки (записи в базе) из этого ресурса функцией

$citys[$i] = mysql_fetch_assoc($regs);

после чего $citys[$i] (пионер писал, не нужно здесь никаких итераторов) будет содержать значения name, city_id под этими именами полей таблицы как под их ключами.

Вы хотите получить название конкретного города, а значит запись должна вернуться одна, следовательно цикла не нужно, но извлечь из ресурса строку надо то.

$city = mysql_query("SELECT name FROM city WHERE city_id=" . $post['city_id']);

здесь $city это ресурс, вот только делать так тоже нельзя - все данные пришедшие извне сервер обязан проверять и тем более не подставлять их в запросы без экранирования или приведения к ожидаемому типу. И я писал в комментариях

//иначе проверка на корректность заполнения полей
//имя какое разрешено, корректно ли введен email
//остальные поля должны быть цифры - привести их к intereg
//если же есть ошибки ввода, то возвращаем сообщения клиенту

Вы это делали? Вряд ли, а ведь ожидалось что сделано будет, и $post['city_id'] будет приведен к intereg и если не будет при этом равен 0, значит не халтура, и только после этого это значение можно смело подставлять в запрос.

После получения ресурса извлечь строку, и уже полученное подставлять в текст письма.

Вы думаете это просто писать тут "учебники"? Взялись писать код, будьте добры хотя бы интересоваться функциями которые в нем есть, и это описано в руководстве, которое можно скачать и всегда иметь под рукой. И там же прочтите, что оригинальное API MySQL устарело и не рекомендуется.

Dan922 27.09.2017 21:58

Дайте пример вот на это
Вы это делали? Вряд ли, а ведь ожидалось что сделано будет, и $post['city_id'] будет приведен к intereg и если не будет при этом равен 0, значит не халтура, и только после этого это значение можно смело подставлять в запрос.

Dan922 27.09.2017 22:01

я чет не совсем понимаю, так ведь приходят целые числа, нет?
Их снова надо чтоли проверять?


Часовой пояс GMT +3, время: 02:23.