Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблемы, submit форма.
Форумы портала PHP.SU » » Вопросы новичков » Проблемы, submit форма.

Страниц (1): [1]
 

1. Troy94 - 24 Июля, 2017 - 01:35:11 - перейти к сообщению
Доброго времени суток, дамы и господа. Мне очень стыдно обращаться за помощью по такому пустяку, ведь скорее всего проблема всего лишь в моей невнимательности. Однако проэкт, пусть и учебный, стоит, а из тупика выйти не выходит. Я делаю это впервые, мне не показывали как оно должно работать правильно, от того этот тупик еще неприятнее. Сэнсэй исключительно занят, так что вы моя последняя надежда.

И так, мы имеем сайт на wordpress под который пишем малюсенький плагин с регистрацией объявлений. Формочка, в ней несколько селекторов, поле под дату-время, кнопка submit. Выносим значения всех селекторов и текстобокса в переменные, и все заталкиваем в базу при нажатии кнопки. Однако база этого не принемает.
Что было проверено:
- Конект с базой.
- Работоспособность переменных.
- Отображение и заполнение всех полей.
- Работоспособность sql сервера, и хоста.
- Работоспособность самой платформы (wordpress без ошибок)

Формочку клинит непосредственно на моменте передачи набора переменных в базу, ошибки не вижу в упор. Единственное что не пробовал на момент написания поста так это глобализировать те самые переменные ( которые получают значения из формы через $_POST).
Высока вероятность что подобная тема проскаковала на форуме уже не раз, прошу прощения но пока не нахожу ответа на свою проблему.
Еще прошу накидать примерчиков на тему использования dataTime виджетов. Найденный мною то ли не работает, то ли мои руки произростают не из полагающегося им места.
Прилагаю скриншот, и код. Спасибо за внимание.

https://img-host[dot]org[dot]ua/images/s[dot][dot][dot]170717174709[dot]png
https://img-host[dot]org[dot]ua/images/s[dot][dot][dot]170711185757[dot]png
2. Vladimir Kheifets - 24 Июля, 2017 - 08:34:49 - перейти к сообщению
Troy94 пишет:

Формочка, в ней несколько селекторов, поле под дату-время, кнопка submit. Выносим значения всех селекторов и текстобокса в переменные, и все заталкиваем в базу при нажатии кнопки. Однако база этого не принемает.
................................ ....................
Формочку клинит непосредственно на моменте передачи набора переменных в базу, ошибки не вижу в упор.


Доброе утро! Как-то странно смотрятся на скриншоте, в селекторах, тексты в одинарных кавычках. Возможно, что значения в $_POST также передаются кавычках и из-за этого "база этого не принемает".
3. Troy94 - 26 Июля, 2017 - 02:21:11 - перейти к сообщению
Прошу прощения за отстутсвие. Проверил, но причина не в этом. Кавычки в селекторах появляются отсюда:


echo "<p>Select a color of stollen car</p> ";
echo "<select name = 'color' style='width: 200px'>";
while ($object = mysqli_fetch_object($result_select2)) {

echo "<option value = '$object->color' > '$object->color' </option>";

}

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


Vladimir Kheifets пишет:
Troy94 пишет:

Формочка, в ней несколько селекторов, поле под дату-время, кнопка submit. Выносим значения всех селекторов и текстобокса в переменные, и все заталкиваем в базу при нажатии кнопки. Однако база этого не принемает.
................................ ....................
Формочку клинит непосредственно на моменте передачи набора переменных в базу, ошибки не вижу в упор.


Доброе утро! Как-то странно смотрятся на скриншоте, в селекторах, тексты в одинарных кавычках. Возможно, что значения в $_POST также передаются кавычках и из-за этого "база этого не принемает".
4. Vladimir Kheifets - 26 Июля, 2017 - 07:52:38 - перейти к сообщению
Troy94 пишет:
Прошу прощения за отстутсвие. Проверил, но причина не в этом. Кавычки в селекторах появляются отсюда:

echo "<p>Select a color of stollen car</p> ";
echo "<select name = 'color' style='width: 200px'>";
while ($object = mysqli_fetch_object($result_select2)) {

echo "<option value = '$object->color' > '$object->color' </option>";

}


Доброе утро!
1. У Вас значение в $_POST['color'] передаётся без кавычек.
Смотреть нужно, что происходит в MySQL - распечать $query и добавить mysqli_error.
PHP:
скопировать код в буфер обмена
  1. $query = "INSERT INTO lostcar.Stolen_cars (mark, model, color, abduction_date ) VALUES ($s_mark,$s_model,$s_color,$s_date)";
  2. $result_insert = mysqli_query($connect, $query) or die(mysqli_error($connect));


2. Непринципиально. У Вас все селекторы и техтовое поле должны иметь одинаковую ширину. Советую Вам определять стили в <style>....</style>.

3. Кавычки на скриншоте из-за того, что здесь ошибка: > '$object->color' </option>"; Здесь кавычек не должно быть.
Порообуйте сделать так:
PHP:
скопировать код в буфер обмена
  1.  
  2. <style>
  3.         select, input[type="text"] {width: 200px}
  4.        
  5.         input[type="submit"] {
  6.         height: 27px;
  7.         width: 96px;
  8.         background-color: #5d5d5d;
  9.         border: medium #717171;
  10.         color: white;
  11.         padding: 10px;
  12.         text-align: center;
  13.         font-size: 10px;
  14.         box-shadow: 1px 1px gray;
  15.         position: absolute;
  16.         left: 25px;
  17.         font-weight: bold;
  18.         }
  19. </style>
  20. <?
  21.     echo "<p>Select a color of stollen car</p> ";
  22.     echo "<select name = 'color' >";
  23.     while ($object = mysqli_fetch_object($result_select2))
  24.     {    
  25.         $color=$object->color;
  26.         $selected=($color==$_POST['color'])?"selected":"";
  27.         echo "<option value = '$color' $selected >$color</option>";
  28.     }
  29. ?>
  30. </select>
5. LIME - 28 Июля, 2017 - 21:53:17 - перейти к сообщению
Vladimir Kheifets пишет:
У Вас значение в $_POST['color'] передаётся без кавычек.
ты же понимаешь что в отсутсвии константы color будет использована строка? выбросит нотайс не более
что конечно уже плохо но... не смертельно
так...на всякий заметил
6. Vladimir Kheifets - 28 Июля, 2017 - 22:31:32 - перейти к сообщению
LIME пишет:
Vladimir Kheifets пишет:
У Вас значение в $_POST['color'] передаётся без кавычек.
ты же понимаешь что в отсутсвии константы color будет использована строка? выбросит нотайс не более
что конечно уже плохо но... не смертельно
так...на всякий заметил

На всякий случай советую читать топик сверху вниз, а не с конца.
Про ковычки я написал, потому, что увидел их в селектах на скриншоте.
Тоже на всякий случай повторю скриншот автора топика:
https://img-host[dot]org[dot]ua/images/s[dot][dot][dot]170717174709[dot]png
Вопрос был задан по поводу того, что данные не сохраняются в БД.
Между прочим автор показал:
$query = "INSERT INTO lostcar.Stolen_cars (mark, model, color, abduction_date ) VALUES ($s_mark,$s_model,$s_color,$s_date)";
7. LIME - 28 Июля, 2017 - 22:40:12 - перейти к сообщению
Vladimir Kheifets а
прошу прощения
поспешил)
дык кавычки надо добавить в запрос а не исключать из $_POST
или я снова не так понял
в любом случае неинтересно думаю ты знаешь что говоришь...
8. Troy94 - 31 Июля, 2017 - 01:36:21 - перейти к сообщению
Большое спасибо. Заработало! Треклятые кавычки. Надо повторить правила их применения.
Еще нуждаюсь в совете по второму вопросу, насчет виджета. Мол кликаешь по полю "Date of abduction", и выскакивает календарик.

 

Powered by ExBB FM 1.0 RC1