Есть ли способ прочитать все флажки в формах и иметь одну кнопку Отправить в отдельной форме? - PullRequest
0 голосов
/ 09 марта 2012

Этот вопрос покажет, какой я новичок. Ситуация такая. Это фотоконкурс. Люди загружают фото и справа на той же строке стоит флажок. Избиратели отмечают флажок, если им нравится фотография. Они могут выбрать, скажем, до 5 фотографий.

Проще говоря, моя проблема не в MySQL, а в форме. Каждая строка имеет флажок, который является формой. Кнопка SUBMIT является проблемой. Единственный способ понять, как отправить работу, - поставить кнопку «Отправить» с каждым флажком. Конечно, это смешно. Я хочу прочитать все отмеченные поля и иметь ОДНУ кнопку отправки, когда избиратель закончил. Потратил на это часы и не мог понять, как самому ПОСТАВИТЬ, чтобы избиратель мог щелкнуть мышью и вставить все проверенные значения в базу данных за один раз.

Какие-нибудь понятия? Я знаю, этот звук очень примитивен, но я просто вхожу в это.

Заранее спасибо за любую помощь

Ответы [ 4 ]

0 голосов
/ 09 марта 2012

Попробуйте этот код // HTML

<form method='post'>
  <input type='checkbox' name='photo[]' value='1' />
  <img src='test1.jpg' />

  <input type='checkbox' name='photo[]' value='2'/>
  <img src='test2.jpg' />

<input type='submit' value="Submit" name="submit" />
</form>

// PHP

 if(isset($_POST['submit']))
{
    if(isset($_POST['photo']))
    {
        if(count($_POST['photo']) > 5)
        {
           // Display error msg
        }
        else
        {
       // Contains all ids voted on
          $img_ids=explode(',',$_POST['photo']);
       // insert or update DB for the image ids
        }
    }
}
0 голосов
/ 09 марта 2012

Ну, есть все виды javascript-способов, чтобы выйти и получить нужные данные и отправить их, но давайте будем простыми.блоки [RETURN ERROR ...] и [DATABASE ...] являются просто заполнителями для заполнения кода)

[process_script.php]

<?
    if (count($_GET['vote_for_image'] > 5) {
        [RETURN ERROR 'Please select no more than 5 images to vote for']
    }
    else {
        foreach ($_GET['vote_for_image'] as $index => $image_id) {
            [DATABASE INSERT OR UPDATE FOR $image_id]
        }
    }
?>
0 голосов
/ 09 марта 2012

Установите checkbox[] в качестве атрибута имени для каждого флажка, и при отправке вы можете адресовать значения как массивы

  <body>
     <form action="checkbox.php" method="post">
     <input type="checkbox" name="checkbox[]" value="a">
     <input type="checkbox" name="checkbox[]" value="b">
      <input type="checkbox" name="checkbox[]" value="c">
      <input type="checkbox" name="checkbox[]" value="d">
      <input type="submit" name="Submit" value="Submit">
    </form>  

    <?php
      if(isset($_POST['Submit']))
     {
       echo $_POST['checkbox'];
      }
   ?>
</body>

выше, даст вам

 Array ( 
   [0] => a 
   [1]=>b
   [2] => c 
   [3]=>d 
  ) 
0 голосов
/ 09 марта 2012

Вы можете заключить все флажки в один тег html-формы и включить в него кнопку отправки. Он автоматически отправит данные во все чекбоксы

Или

Вы можете использовать javascript / jQuery для запуска всех флажков. И отправьте форму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...