2 HTML-формы с одинаковыми сквозными значениями отправки из обеих

#php #jquery

#php #jquery

Вопрос:

Хорошо, возможно, это сложно объяснить. У меня есть форма, созданная с использованием класса PHP Form Builder

Который выглядит как:

 $form = new form("firstForm");
    $form->setAttributes(array(
             "width" => 600,
             "noAutoFocus" => 1,
             "jsIncludesPath" => "lib/php-form-builder-class/includes",
             "action" => "uploader.php"
    ));

    $form->addTextbox("Enter a Title:", 'title' , $row['title']);
    $form->addTextbox("Enter a Promo Code:", "promo" , $row['promo']);
    $form->addWebEditor("Description", "description", $row['description'], array("basic" => 1));
    $form->addWebEditor("Terms and Conditions", "terms", $row['terms'], array("basic" => 1));
    $form->addHidden("img_urls", $row['img_urls']);
    $form->addHidden("destination", $row['destination']);
    $form->addHidden("header", $row['headerimg']);
    $form->addHidden("cmd", "submit_0");
    $form->addButton();
    $form->render();
  

Я хочу добавить немного jQuery к одному из элементов, чтобы разрешить перетаскивание, поэтому я создал еще один элемент формы:

 ?>
    <form id="firstForm"  action="uploader.php" method="post" >
    <ul class="sortable"> 
    Mags Select:
    <?
    foreach ($profiles as $mag) {
    ?>
    <div id="sorty"><input type="checkbox" name="units" value="<? echo $mag ?>" /><label><? echo $mag ?></label><br /></div>
    <? }  ?>
    </ul>
    </form>
  

Как я могу заставить часть jQuery публиковать через ее значения ‘units’ при отправке класса PHP Form Builder?

Я посмотрел на добавление метода в класс, но подумал, есть ли более простой способ?

Редактировать:

Форма класса PHP Form Builder является автономной, поэтому, где бы форма jQuery ни находилась на странице, она всегда будет находиться за пределами другой.

Комментарии:

1. Зачем создавать другую форму? Просто добавьте свои элементы в исходную форму, чтобы они отправляли значения вместе с ней.

2. Ах, не объяснил, что когда генерируется PHP-форма, она является автономной.

Ответ №1:

Вы могли бы использовать javascript и перенести значения из второй формы В (скрытые поля в) первой форме?

Или аналогично вы могли бы просто создать форму и скопировать HTML (просмотреть исходный код) и использовать его вместо необработанного php, затем вставить в него свой jQuery drag and drop таким образом.

Комментарии:

1. неэлегантное решение, (я имею в виду, что никоим образом не неуважительно!) но я сделал ваш второй ответ, спасибо!

Ответ №2:

Просто измените свой второй идентификатор «firstForm» на SecondForm, затем сделайте что-то вроде этого:

 $('#firstForm').submit(function(event) {
    event.preventDefault();

    var postData = $(this).add('#secondForm').serialize();

    $.post($(this).attr('action'), postData, function() {
     // Complete....
    }
});
  

Поскольку ваш units ввод содержит несколько элементов, вы можете изменить это на массив, подобный этому (обратите внимание на изменение с units на units[] ):

 <div id="sorty"> <!-- I assume this should be ouside the foreach... !-->
   <? foreach ($profiles as $mag) { ?>
      <input type="checkbox" name="units[]" value="<? echo $mag ?>" />
      <label><? echo $mag ?></label><br/>
   <? } ?>
</div>
  

Тогда вы получите это точно так же, как массив в PHP:

  foreach ($_POST['units'] as $key => $value)
 {

 }
  

Комментарии:

1. Я попробовал это: <тип сценария = «текст / javascript»> $ (‘#firstForm’).submit(функция (событие) { event.preventDefault(); var postData = $ (this).add (‘#SecondForm’).serialize(); $.post ($(this).attr (‘действие’), postData, функция() { window. location = «uploader.php » } )}); </script> но перенаправление окна никогда не вызывается.

Ответ №3:

Не могли бы вы поместить поле формы перетаскивания jQuery в тот же <form> тег, что и все остальные поля? Это естественный способ сделать это.

Комментарии:

1. Я предполагаю, что он не может поместить пользовательский HTML / jQuery в формы, созданные с использованием класса php form?

2. Без добавления другого пользовательского метода в класс я не могу придумать, как добавить форму ‘jQuery’ к форме PHP.

3. @BobFlemming: поле jQuery просто состоит из флажков и все <ul> , верно? Не могли бы вы добавить флажки в форму с помощью PHP Form Builder, а затем поставить <ul> после формы? (Я не знаком с PHP Form Builder, поэтому приношу извинения, если это невозможно.)