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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите с формой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
keks_feo
Отправлено: 27 Июля, 2010 - 19:31:12
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




такая проблема:
в ниже преведенном привере все ок, только при переходе submit, option value переходит в первоночальное состояние. Возможно ли запомнить, хотя бы на время перехода option value?
т.е. к примеру я выбрал месяц Июньи нажал на "показать" страница обновилась и ниже выдал мне информацию, а сам месяц в ФОРМЕ остался тот, который я выбирал (Июнь)

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <html><body>
  3. <form action="tar.php" method="post">
  4. <select id="name" name="name">
  5.         <OPTION selected value=1>Месяц:</OPTION>
  6.         <option value="01">Январь</option>
  7.         <option value="02">Февраль</option>
  8.         <option value="03">Март</option>
  9.         <option value="04">Апрель</option>
  10.         <option value="05">Май</option>
  11.         <option value="06">Июнь</option>
  12.         <option value="07">Июль</option>
  13.         <option value="08">Август</option>
  14.         <option value="09">Сентябрь</option>
  15.         <option value="10">Октябрь</option>
  16.         <option value="11">Ноябрь</option>
  17.         <option value="12">Декабрь</option>
  18. </select>
  19. <select id="age" name="age">
  20.         <option value="2" selected >Год:</option>
  21.         <option value="2010">2010</option>
  22. </select>
  23.  
  24.  
  25. <input type=submit value="показать">
  26. </form>
  27. <BR>
  28.  
  29. <?php
  30.  $text =  $_POST['name'];
  31.  $msg =  $_POST['age'];
  32.  $text1 =  $text.$msg;
  33.  $link="file/".$text1.".htm";  
  34.  $link0="tarif/file/".$text1.".htm";  
  35.  
  36.  
  37. // проверяем, существует ли файл
  38.  
  39.  
  40. myfile($link0); // Используем функцию myfile, передав в качестве аргумента имя файла
  41.  
  42. function myfile($name) //Создаем функцию для проверки существования файла
  43. {
  44. if (file_exists($name))
  45.        
  46.         {
  47.                 $text =  $_POST['name'];
  48.                 $msg =  $_POST['age'];
  49.                 $text1 =  $text.$msg;
  50.                 $link="file/".$text1.".htm";  
  51.                 $link0="tarif/file/".$text1.".htm";  
  52.                 $url = "http://192.168.1.1/1111/tar/";
  53.  
  54.                 $ch = curl_init();  
  55.                         curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  56.                         curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
  57.                         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  58.                         curl_setopt($ch, CURLOPT_URL, $url.$link);  
  59.                 $result = curl_exec($ch);  
  60.                         curl_close($ch);  
  61.                 echo $result;
  62.         }
  63.  
  64.  
  65.  
  66. else echo "Извините но на данный период нет данных";
  67. }
  68.  
  69. ?>
 
 Top
Реф
Отправлено: 27 Июля, 2010 - 19:45:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


Помог: 0 раз(а)




Создай ассоциативный массив месяцев $value => $month
В цикле обходи его и ищи совпадение с $_POST['name'] если найдено выводи <option chacked='checked' value='$value'>$month</option>, иначе просто <option value='$value'>$month</option>.
Даже если совпадений не будет (в случае попытки подмены формы), то по умолчанию будет выбран первый месяц списка.

(Отредактировано автором: 27 Июля, 2010 - 19:47:29)



-----
Думать надо головой, а не головкой!
 
 Top
keks_feo
Отправлено: 27 Июля, 2010 - 21:13:52
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




ок! Спсб все получилось, через массив!
 
 Top
Реф
Отправлено: 27 Июля, 2010 - 21:16:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


Помог: 0 раз(а)




На здоровье Подмигивание


-----
Думать надо головой, а не головкой!
 
 Top
keks_feo
Отправлено: 28 Июля, 2010 - 10:08:42
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Хотя, ребята, как оказалось это не все =)



смотрите, что у меня вышло

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. function selectItems($items, $selected=0) {
  5.  $text = "";
  6.  foreach ($items as $k=>$v) {
  7.    if ($k === $selected) $ch = " selected"; else $ch = "";
  8.    $text .= "<option$ch value='$k'>$v</option>\n";  
  9.  }  
  10.  return $text;
  11. }
  12.  
  13. // массив месецев и годов.
  14. $names = array(
  15.                 "01"=>"Январь",
  16.        "02"=>"Февраль",
  17.        "03"=>"Март",
  18.        "04"=>"Апрель",
  19.        "05"=>"Май",
  20.        "06"=>"Июнь",
  21.        "07"=>"Июль",
  22.        "08"=>"Август",
  23.        "09"=>"Сентябрь",
  24.        "10"=>"Октябрь",
  25.        "11"=>"Ноябрь",
  26.        "12"=>"Декабрь",
  27. );
  28.  
  29. $names1 = array(
  30.                 "2010"=>"2010",
  31.        "2011"=>"2011",
  32.        
  33. );
  34.  
  35. // Если был выбран элемент, вывести информацию.
  36. if (isset($_REQUEST['txt1'])) {
  37.  $name = $names[$_REQUEST['txt1']];
  38.  echo "Вы выбрали: {$_REQUEST['txt1']}, {$name} ";
  39. }
  40.  
  41. if
  42. (isset($_REQUEST1['txt2'])) {
  43.  $name = $names[$_REQUEST1['txt2']];
  44.  echo "Вы выбрали: {$_REQUEST1['txt2']}, {$name1} ";
  45. }
  46. ?>
  47.  
  48.  
  49.  
  50. <!-- Форма для выброра . -->
  51. <form action="<?=$_SERVER['SCRIPT_NAME']?>" method=post>
  52.   Выберите месяц:
  53.   <select name=txt1>
  54.     <?=selectItems($names, $_REQUEST['txt1'])?>
  55.   </select>
  56.  
  57.   Выберите год:
  58.   <select name=txt2>
  59.     <?=selectItems($names1, $_REQUEST1['txt2'])?>
  60.   </select>
  61.   <br>
  62.  
  63.  <input type=submit value="показать">
  64. </form>
  65.  
  66. <?php
  67. $text =  $_POST['txt2'];
  68. $msg =  $_POST['txt2'];
  69. $text1 =  $text.$msg;
  70. $link="file/".$text1.".htm";  
  71. $link0="tarif/file/".$text1.".htm";  
  72.  
  73.  
  74. // проверяем, существует ли файл
  75.  
  76. echo $text1;
  77.  
  78. myfile($link0); // Используем функцию myfile, передав в качестве аргумента имя файла
  79.  
  80. function myfile($name) //Создаем функцию для проверки существования файла
  81. {
  82. if (file_exists($name))
  83.        
  84.        {
  85.                $text =  $_POST['surname'];
  86.                $msg =  $_POST['surname1'];
  87.                $text1 =  $text.$msg;
  88.                $link="file/".$text1.".htm";  
  89.                $link0="tarif/file/".$text1.".htm";  
  90.                $url = "http://10.113.3.74/1111/tarif/";
  91.  
  92.                $ch = curl_init();  
  93.                        curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  94.                        curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
  95.                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  96.                        curl_setopt($ch, CURLOPT_URL, $url.$link);  
  97.                $result = curl_exec($ch);  
  98.                        curl_close($ch);  
  99.                echo $result;
  100.        }
  101.  
  102.  
  103.  
  104. else echo "Извините но на данный период нет данных";
  105. }
  106.  
  107. ?>
  108.  
  109.  


тут возникло 2 проблемы
1. при выборе месяца после сентября в форме меняется месяц автоматически на январь .... а до сентебря все ок!
к примеру выбрал Июнь, нажал показать и в форме остался месяц Июнь. А вот после Сентября месяц автоматом ставиться Январь!
2. год не запоминается Недовольство, огорчение выбрал 2011 нажал показать и в форме опять 2010

помогите разобраться пжлст!
(Добавление)
с 1 проблемой разобрался ..
топо заменил
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $names = array(
  3.        "001"=>"Январь",
  4.        "002"=>"Февраль",
  5.        "003"=>"Март",
  6.        "004"=>"Апрель",
  7.        "005"=>"Май",
  8.        "006"=>"Июнь",
  9.        "007"=>"Июль",
  10.        "008"=>"Август",
  11.        "009"=>"Сентябрь",
  12.        "010"=>"Октябрь",
  13.        "011"=>"Ноябрь",
  14.        "012"=>"Декабрь",
  15. );

т.е. 0 впереди добавил и теперь все месяца выводит четко!

осталось только запомнить год Недовольство, огорчение
 
 Top
alexspb
Отправлено: 28 Июля, 2010 - 11:02:10
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




keks_feo, для года у вас в переменной реквест лишняя единичка (в имени)
(Добавление)
и обзывайте переменные по английски - осмысленно
не $names, $names1
а
$monthes, $years
в форме соответственно - month, year


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
keks_feo
Отправлено: 28 Июля, 2010 - 11:14:53
Post Id


Новичок


Покинул форум
Сообщений всего: 45
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




да .. сам запутал, когда обозвал все своими именами все стало понятнее ... все спсб! все получилось!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB