Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Передача переменной из одной формы в другую
 
 автор: Felix   (17.11.2004 в 08:41)   письмо автору
 
 

Как передать переменную чекбокса (checkbox) из одной формы в другую с учетом того что потом она будет передаваться еще в одну форму. Вот код:

<?
include "connect.php";
mysql_select_db($DB);
echo 
"<form action='updat.php' method='POST'>";
echo 
"<table border=1 cellspacing='0' width=100% bgcolor='#00CCCC'>";
echo 
"<tr bgcolor='#6666FF' colspan='2'><td>№</td><td>Дата</td><td>Подразделение</td><td>Участок</td><td>Механизм</td><td>Кол-во    м/ч</td><td>Подразд.заказчик</td><td>Участок заказчик</td></tr>";
$r=mysql_query("select * from tbl");
for (
$i=0$i<mysql_num_rows($r); $i++)
{
echo 
"<tr>";
$f=mysql_fetch_array($r);
echo 
"<td><INPUT type='checkbox' name='numer[]' value='$f[numer]'>$f[numer]</td><td>$f[data]</td><td>$f[podrazd]</td><td>$f[uchastok]</td><td>$f[mehanizm]</td><td>$f[kol_vo]</td><td>$f[usl_podr]</td><td>$f[usl_uch]</td>";
echo 
"</tr>";
?>

   
 
 автор: glsv (Дизайнер)   (17.11.2004 в 09:07)   письмо автору
 
   для: Felix   (17.11.2004 в 08:41)
 

>Как передать переменную чекбокса (checkbox) из одной формы в другую
Имеется ввиду передача из одного скрипта в другой, а затем еще в один? Или что то другое?

В случае Вашего кода, после того как будет нажата кнопка "Submit" и данные формы будут отосланы скрипту 'updat.php' – в нем будет создан массив $_POST['number'], которые и будет содержать все значения checkbox-ов.

   
 
 автор: Felix   (17.11.2004 в 11:19)   письмо автору
 
   для: glsv (Дизайнер)   (17.11.2004 в 09:07)
 

Да имеется в виду передача из одного скрипта в другой а затем еще в один и еще и еще всего 8 штук.
Вот я и незнаю как протащить эту переменную через все скрипты не потеряв нигде.

А как это будет выглядеть в виде кода ? У меня ума не хватает чтото. А именно как это будет выглядеть в скрипте в который передадуться переменные в данном случае в updat.php

   
 
 автор: glsv (Дизайнер)   (17.11.2004 в 13:35)   письмо автору
 
   для: Felix   (17.11.2004 в 11:19)
 

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

Вот пример формы:

<form action="action.php" method="post">
    <input type="checkbox" name="ch[]" value="1"> 1<br>
    <input type="checkbox" name="ch[]" value="2"> 2<br>
    <input type="checkbox" name="ch[]" value="3"> 3<br>
    <input type="checkbox" name="ch[]" value="4"> 4<br>
    <input type="checkbox" name="ch[]" value="5"> 5<br>
    <input type="submit" value="Послать">
</form>


Скрипт-обработчик action.php

<?
  
// Присваиваем переданные из формы данные переменной $ch
  
$ch $_POST['ch'];
  
// Выводим содержимое массива на экран
  
foreach ($ch as $val
  {
    echo 
$val."<br>";
  }
?>


Значения выделенных чекбоксов переданы. Как их использовать далее - зависит от задачи.
Расскажите - подумаем вместе.

   
 
 автор: Felix   (17.11.2004 в 13:51)   письмо автору
 
   для: glsv (Дизайнер)   (17.11.2004 в 13:35)
 

Рассказываю :
Далее нужно значение этих же выделенных чекбоксов передать в следущую форму т.е. в следущий скрипт в скрытом поле (hidden) .

Я попробовал передать $ch но у меня не вышло. Вместо значений пишет Array и все.

   
 
 автор: glsv (Дизайнер)   (17.11.2004 в 21:33)   письмо автору
 
   для: Felix   (17.11.2004 в 13:51)
 

Можно сделать так:
Во втором скрипте автоматически формируем скрытые поля с именем ch.
И по отправке данных формы следующему скрипту перейдут и значения того же самого массива.

<form action="nextaction.php" method="post">
<?
  
foreach ($ch as $val
  {
    echo 
'<input type=hidden name=ch[] value='.$val.'>';
  }
?>
  <input type="submit" value="Послать">
</form>

   
 
 автор: Felix   (18.11.2004 в 06:16)   письмо автору
 
   для: glsv (Дизайнер)   (17.11.2004 в 21:33)
 

Спасибо за помощь, с этим вроде бы все.

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

   
 
 автор: cheops   (18.11.2004 в 12:06)   письмо автору
 
   для: Felix   (18.11.2004 в 06:16)
 

Можно воспользоваться регулярными выражениями - следующее регулярное выражение не полностью проверяет корректность ввода, но форма ввода (гггг.мм.дд) будет правильной...
<?php
 
// гггг.мм.дд
 
$date "2004.11.18";
 if(!
preg_match("|^[0-9]{4}.[0-9]{2}.[0-9]{2}$|i"$date))
 {
   echo 
"Введите дату в формате гггг.мм.дд";
 }
 else
 {
   echo 
"Дата введена правильно";
 }
?>


http://www.softtime.ru/group/id_group=3

   
 
 автор: namo   (18.11.2004 в 05:15)   письмо автору
 
   для: Felix   (17.11.2004 в 08:41)
 

Вот что вышло у меня:

<?php
if(!isset ($_GET['level']) )
{
    echo 
'
    <form action="index.php?level=1" method="post">
    &#194;&#226;&#229;&#228;&#232;&#242;&#229; &#226;&#224;&#248; &#237;&#232;&#234; ???<br><br>
    <input name="name" type="text" value=""><br><br>
    <input type="submit" value="Send">
    </form>'
;
}
elseif( 
$_GET['level'] == '1' )
{
    if ( !isset(
$_POST['name']) )
    {
        echo 
'&#194;&#251; &#237;&#229; &#231;&#224;&#239;&#238;&#235;&#237;&#232;&#235;&#232; &#239;&#224;&#240;&#224;&#236;&#229;&#242;&#240;&#251; <<< <a href="index.php">&#237;&#224;&#231;&#224;&#228;</a>';
    }
    else
    {

        echo 
'
        <form action="index.php?level=2" method="post">
        <input name="name" type="hidden" value="'
.$_POST['name'].'">
        &#202;&#224;&#234; &#226;&#224;&#236; &#253;&#242;&#238;&#242; &#244;&#238;&#240;&#243;&#236; ???<br><br>
        <input type="radio" name="ocenka" value="&#206;&#242;&#235;&#232;&#247;&#237;&#238;"> &#206;&#242;&#235;&#232;&#247;&#237;&#238;<br>
        <input type="radio" name="ocenka" value="&#213;&#238;&#240;&#238;&#248;&#238;"> &#213;&#238;&#240;&#238;&#248;&#238;<br>
        <input type="radio" name="ocenka" value="&#204;&#237;&#229; &#239;&#238;&#244;&#232;&#227;&#243;"> &#204;&#237;&#229; &#239;&#238;&#244;&#232;&#227;&#243;<br>
        <input type="radio" name="ocenka" value="&#212;&#232;&#227;&#237;&#255;"> &#212;&#232;&#227;&#237;&#255;<br><br>
        &#194;&#224;&#248;&#232; &#234;&#238;&#236;&#236;&#229;&#237;&#242;&#224;&#240;&#232;&#232;...<br><br>
        <textarea name="comment" cols="40" rows="8"></textarea><br><br>
        <input type="submit" value="Send">
        </form>
        '
;
    }
}
elseif ( 
$_GET['level'] == '2' )
{
    if ( !isset (
$_POST['name'],$_POST['ocenka'], $_POST['comment']) )
    {
        echo 
'&#194;&#251; &#237;&#229; &#231;&#224;&#239;&#238;&#235;&#237;&#232;&#235;&#232; &#239;&#224;&#240;&#224;&#236;&#229;&#242;&#240;&#251; <<< <a href="javascript:history.back()">&#237;&#224;&#231;&#224;&#228;</a>';
    }
    else
    {
        
$to 'namo@pochta.ru';
        
$subject 'Script';
        
$text "&#200;&#236;&#255;: $_POST[name]\n&#206;&#246;&#229;&#237;&#234;&#224;: $_POST[ocenka]\n&#202;&#238;&#236;&#236;&#229;&#237;&#242;&#224;&#240;&#232;&#232;:\n $_POST[comment]\n&#202;&#238;&#237;&#229;&#246;";
        
mail($to,$subject,$text);
        echo 
'&#209;&#239;&#224;&#241;&#232;&#225;&#238; &#231;&#224; &#243;&#247;&#224;&#241;&#242;&#232;&#229; :)';
    }
}
else
{
    echo 
'<script>location = "index.php"</script>';
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования