За последние 24 часа нас посетили 58236 программистов и 1850 роботов. Сейчас ищут 1472 программиста ...

php и формы

Тема в разделе "Прочие вопросы по PHP", создана пользователем chippolino, 24 апр 2010.

  1. chippolino

    chippolino Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Mexico
    Уважаемые, подскажите плиз как мне разобраться со следующей задачей:
    дана одна html-форма, при введении и отправке на сервер числа из этой формы php должен сгенерировать полученное количество форм.
    Вопрос: как на этой же странице работать с этими формами (записать все значения в массив, например)?
    Заранее благодарен.
    PS если есть возможность напишите в двух словах:
    1)как сгенерировать формы
    2)как их обработать
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    1) for() + print
    2) <input ... name="gform[]" ....>
     
  3. chippolino

    chippolino Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Mexico
    Спасибо, Mr.M.I.T.!
    пошел пробовать.
     
  4. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    chippolino, далеко идти-то?
     
  5. chippolino

    chippolino Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Mexico
    PHP:
    1. <?php
    2.  
    3. $a = $_POST[a];
    4. if($a!=""){
    5.     echo "<form method='post'>\n";
    6.     $a = (int)$a;
    7.     for($i=1; $i<=$a; $i++)
    8.  
    9.     echo "<input name=\""."gform".$i."\"/><br/>\n";
    10. }
    11.     if($a>0) {
    12.         echo "<input type='submit' value='отправить'/>";
    13.         echo "</form>";
    14.         }
    15. //вот на этом месте не могу понять как обратиться к данным, переданым из сгенерированных форм
    16.  
    17.  
    18. ?>
     
  6. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    а данные передавались? вопервых у тебя нету имени у формы назови ее какнить(lalala[])... а потом пройдись по массиву форм. и обратись только заранее обработчик поставь.
     
  7. chippolino

    chippolino Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Mexico
    vuzy, если не затруднит - напиши кратко как это выглядит,
    а то практикующему недоучке сложно понять что к чему.
     
  8. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    chippolino, называй элементы не gform$i, а gform[$i]. Тогда на выходе получишь массив в $_POST['gform'].
     
  9. chippolino

    chippolino Активный пользователь

    С нами с:
    22 апр 2010
    Сообщения:
    33
    Симпатии:
    0
    Адрес:
    Mexico
    Спасибо, lexa за совет!

    PHP:
    1.  
    2. <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    3. <form action="" method="post">
    4. введите количество :<br/> <input name="a"/><br/>
    5. <input type="submit" value="отправить"/></form>
    6. <?php
    7.  
    8. $a = $_POST[a];
    9. if($a!=""){
    10.     echo "<form method='post'>\n";
    11.     $a = (int)$a;
    12.     for($i=1; $i<=$a; $i++)
    13.     echo "<input name=""."gform[$i]".""/><br/>\n";
    14. }
    15.     if($a>0) {
    16.         echo "<input type='submit' value='отправить'/>";
    17.         echo "</form>";
    18.         }
    19.      $arr = $_POST['gform']; //тут бы как нибудь прописать, что все значения массива должны быть типа (int)
    20.      error_reporting(0); //а здесь, что значения !="". Как только это сделать  
    21.      echo array_sum($arr);
    22. ?>
    23.  
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    но разумнее было бы просто
    gform[]