Нужна помощь с формой

Тема в разделе "Как сделать...", создана пользователем SocMaster, 8 авг 2013.

Статус темы:
Закрыта.
  1. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Есть форма вот такая http://clip2net.com/s/5x2WJB
    2 поля 2 и 1
    Стоят в цикле, потому и повторяются, дальше внизу кнопка отправить.
    Когда Я заполняю форму, берутся только последние значения полей, ну это ястно
    Могу подставить в цикл названия поля+$i
    Как мне потом вытащить значения если я не знаю сколько полей, то есть не могу узнать названия поля...
    Сейчас все просто, вот так
    $aa = $_POST['1'];
    $aa2 = $_POST['2'];
    помогите плс
     
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    нужно знать имена input полей, тоесть какие у них name аттрибуты, дайте ссылку на саму форму, либо скопируйте html (сгенерировный) формы, так будет понятнее какое там правило на имена инпутов
     
  3. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Ну Я сделаю вот так name="name $i"
    $i начнется с 0
    То есть
    name1
    name2
    name3
    и тп
    Такс всего 10 полей
    Значит нужно просто в цикле сделать обход....
    Вот у меня код
    $rd = $_POST['faile'];
    $fno = 'test/' . $rd . '';
    $aa = $_POST['1'];
    $aa2 = $_POST['2'];
    $eng_xml_txt = file_get_contents($fno);
    $file="text.php";
    $mytext = str_replace($aa, $aa2, $eng_xml_txt);
    var_dump($mytext);
    file_put_contents($file, $mytext);
    Нужно поместить в цикл его?
    Помогите, ну не могу понять и все
     
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
  5. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Допустим Я сделаю вот так $_POST['name'][0]
    А как дальше?
    Ну что все пост данные прошли операцию
    $mytext = str_replace($aa, $aa2, $eng_xml_txt);
    file_put_contents($file, $mytext);
     
  6. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    foreach($_POST['name'] AS $index => $value)
    {}
     
  7. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    Сейчас я просто беру текст из формы, заменяю из одного поля на другое в текстовом файле, и сохраняю файл
    Если сделаю
    $mytext = str_replace( $_POST['name'][+-], $aa2, $eng_xml_txt);
    file_put_contents($file, $mytext); в цикл
    То просто файл будет перезаписываться новыми значениями, а старые то сохранятся не будут
     
  8. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    ну так это уже другая задача, не нужно ставить file_put_content в цикл, вынесите его за пределы, собирайте контент
    $mytext .= str_replace( $_POST['name'][+-], $aa2, $eng_xml_txt);
    а после цикла

    file_put_contents($file, $mytext);


    что-то навскидку

    Код:
    $mytext = 'адский ад!';
    foreach($_POST['name'] AS $index => $value)
    {
        $mytext .= str_replace($value, $aa2, $eng_xml_txt);
    }
    file_put_contents($file, $mytext);
    
     
    SocMaster нравится это.
  9. SocMaster

    SocMaster aka Hakerok

    Регистр.:
    26 июл 2011
    Сообщения:
    202
    Симпатии:
    47
    А если 2 таких динамических поля то два цикла?

    И еще почему foreach($_POST['name'] ?
    Если name динамическое названия,
    name0
    name1
    name2
    и тп
     
  10. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.723
    Симпатии:
    2.100
    если массивы одинаковы то по идее можно сделать итерировать по индексу и брать значения из двух массивов одновременно в одном цыкле, например
    for($i = 0; $i < count(_POST['first_field']); ++$i)
    {
    $a = _POST['first_field'][$i];

    $b = _POST['second_field'][$i];
    }
    потому что значения которые запостяться на сервак будут в виде массива
    array('name' => array (1 => 'значение 1', 'name' => array (2 => 'значение 2')))

    имена будут динамические, но не так как вы написали а
    name[0]
    name[1]
    name[2]
    ....
     
    SocMaster нравится это.
Статус темы:
Закрыта.