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 :: Версия для печати :: не передаётся из формы
Форумы портала PHP.SU » » Если скрипт не работает » не передаётся из формы

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

1. Gnome - 05 Января, 2012 - 08:04:32 - перейти к сообщению
Извиняюсь что раскопал столь древнюю тему Закатив глазки
Почему-то у меня не работает данный код, т.е скрипт всё равно выполняется без нажатия на submit

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <tr>
  4. <td width="150">&nbsp;</td><td><input type="submit" name="addnav" value="Добавить" /></td>
  5. </tr>
  6. </table>
  7.  
  8. if (isset($_POST['addnav']))
  9. {
  10.  
  11. if(isset($park) && isset($autonumber) && isset($serialnumber) && isset($navnumber) && isset($model) && isset($simnumber) && isset($navitelkey))
  12. {
  13. $addnav = mysql_query("INSERT INTO nav (park, autonumber, serialnumber, navnumber, model, simnumber, navitelkey) VALUES('$park', '$autonumber', '$serialnumber', '$navnumber', '$model', '$simnumber', '$navitelkey')");
  14. }
  15.  
  16. }
  17.  
  18. else
  19. {
  20. echo "error";  
  21. }
  22.  
  23.  


Подскажите в чём может быть проблема?
2. Deert - 05 Января, 2012 - 08:08:46 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. чтобы скрипт обрабатывал сам себя в тэге форм не пиши action ваобще и он будет обрабатывать себя сам
  3. if(isset($_POST['submit']))
  4. {
  5. ///Туто пиши какие действие оно должно выполнять
  6.  
  7. }
  8.  
  9. //Код выше говорит если нажата кнопка то выполнить действие которое написано выше в теле конструкции ifelse а если нет то выводим форму
  10.  
  11. /////Туто формы
  12. ////а вот и кнопка
  13. <input type='submit' name='submit' valuie='Заполнить'>
  14.  
  15. если вышла форма вы ее заполнили нажали Заполнить скрипт обновляет страницу и получаеться вы нажали кнопку и он выполняет то что написано в конструкции ifelse
  16.  
3. Gnome - 05 Января, 2012 - 09:48:51 - перейти к сообщению
хмм.....
что-то всё равно не работает, т.е выполняется до нажатия на кнопку Недовольство, огорчение

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if (isset($_POST['submit']))
  3. {
  4.  
  5. if(isset($park) && isset($autonumber) && isset($serialnumber) && isset($navnumber) && isset($model) && isset($simnumber) && isset($navitelkey))
  6. {
  7. $addnav = mysql_query("INSERT INTO nav (park, autonumber, serialnumber, navnumber, model, simnumber, navitelkey) VALUES('$park', '$autonumber', '$serialnumber', '$navnumber', '$model', '$simnumber', '$navitelkey')");
  8. }
  9.  
  10. }
  11.  
  12. else
  13. {
  14. echo "error";  
  15. }
  16.  
  17.  
  18. ..............................
  19.  
  20.  
  21. <tr>
  22. <td width="150">&nbsp;</td><td><input type="submit" name="submit" value="Добавить" /></td>
  23. </tr>
  24. </table>
  25.  

(Добавление)
Извиняюсь, всё заработало, спасибо!

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

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['submit']))
  3. {
  4.  
  5.  
  6. if(isset($park) && isset($autonumber) && isset($serialnumber) && isset($navnumber) && isset($model) && isset($simnumber) && isset($navitelkey))
  7. {
  8. $addnav = mysql_query("INSERT INTO nav (park, autonumber, serialnumber, navnumber, model, simnumber, navitelkey) VALUES('$park', '$autonumber', '$serialnumber', '$navnumber', '$model', '$simnumber', '$navitelkey')");
  9. }
  10. else
  11. {
  12.  
  13.         if(isset($park))
  14.         {
  15.         }
  16.         else
  17.         {
  18.         echo "<b><font color='red'>Выберите парк!</font></b><br />";           
  19.         }
  20.        
  21.         if(isset($autonumber))
  22.         {
  23.         }
  24.         else
  25.         {
  26.         echo "<b><font color='red'>Введите номер машины!</font></b><br />";            
  27.         }
  28.  
  29.         if(isset($serialnumber))
  30.         {
  31.         }
  32.         else
  33.         {
  34.         echo "<b><font color='red'>Введите серийный номер устройства!</font></b><br />";               
  35.         }
  36.        
  37.         if(isset($navnumber))
  38.         {
  39.         }
  40.         else
  41.         {
  42.         echo "<b><font color='red'>Введите номер устройства!</font></b><br />";        
  43.         }
  44.        
  45.         if(isset($model))
  46.         {
  47.         }
  48.         else
  49.         {
  50.         echo "<b><font color='red'>Выберите модель устройства!</font></b><br />";              
  51.         }
  52.        
  53.         if(isset($simnumber))
  54.         {
  55.         }
  56.         else
  57.         {
  58.         echo "<b><font color='red'>Введите номер sim карты!</font></b><br />";         
  59.         }
  60.        
  61.         if(isset($navitelkey))
  62.         {
  63.         }
  64.         else
  65.         {
  66.         echo "<b><font color='red'>Введите ключ для Navitel!</font></b><br />";        
  67.         }
  68.        
  69. }
  70.  
  71. }
  72.  
4. Plusminuz - 05 Января, 2012 - 10:42:35 - перейти к сообщению
а не проще вместо

CODE (htmlphp):
скопировать код в буфер обмена
  1. if(isset($park))
  2.         {
  3.         }
  4.         else
  5.         {
  6.         echo "<b><font color='red'>Выберите парк!</font></b><br />";          
  7.         }


сделать

CODE (htmlphp):
скопировать код в буфер обмена
  1. if(!isset($park))
  2.     echo "<b><font color='red'>Выберите парк!</font></b><br />";  
5. Deert - 05 Января, 2012 - 12:02:46 - перейти к сообщению
Первую часть кода оформи так
PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submit']))
  2. {
  3.  
  4.  
  5. if(isset($park, $autonumber, $serialnumber, $navnumber, $model, $simnumber, $navitelkey))
  6. {
  7.  
  8. $addnav = mysql_query ("INSERT INTO
  9.                              `nav`
  10.                                                           (`park`, `autonumber`, `serialnumber`, `navnumber`, `model`, `simnumber`, `navitelkey`)
  11.                                                           VALUES
  12.                                                           ('$park', '$autonumber', '$serialnumber', '$navnumber', '$model', '$simnumber', '$navitelkey')
  13.                                                           ");
  14.                                                          
  15. }
  16. else

Так гораздо читабельнее и сервер будет быстрее работать. А остольное какнибудь сам. Ищи в инете сайты где показывают как красиво и правильно оформлять код. Вот один из них irbis-team
6. Gnome - 07 Января, 2012 - 14:37:15 - перейти к сообщению
Plusminuz и Deert спасибо!

Всё работает. Теперь возникла ещё одна проблемка, необходимо перед добавлением сделать проверку нескольких таблиц на наличие добавляемого содержимого чтобы избежать дубликатов записей в бд.
Не знаю как это реализовать, как вариант:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $listnav = mysql_query("SELECT serialnumber FROM nav");
  3. while($listnavrow = mysql_fetch_array($listnav))
  4. {
  5.        
  6. if($listnavrow['serialnumber'] == $serialnumber)
  7. {
  8.         echo "error";  
  9. }
  10.  
  11. }
  12.  


и в принципе он работает, только error выводится два раза подряд, вот так errorerror.
Читал на форумах что правильнее будет это сделать с помощью COUNT и mysql_num_rows но как именно это будет выглядеть так и не разобрался.

 

Powered by ExBB FM 1.0 RC1