Как я могу изменить свою форму так, чтобы были опубликованы только выбранные поля - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть форма, автоматически сгенерированная по запросу MySQL со всеми книгами, доступными для заказа в нашем книжном магазине.Проблема в том, что номера ISBN для всех доступных книг публикуются вместо только тех, которые мы выбрали, и это тратит много памяти.

Можно ли публиковать только те данные, которые мы выбрали иливсе поля ввода в скобках должны быть опубликованы?

Вот как выглядит форма:

<form name="form" action="postdata.php" method="post">
<?php
$k=0;    
while ($books = mysqli_fetch_array($booksq)){
   $bookISBN[$k]=$books['theISBN'];
   echo '<textarea name="'.$bookISBN[$k].'"></textarea>'.$bookISBN[$k].'<br>;
   $k+=1;
   }
?>
</form>

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

Вот как выглядят данные $ _POST с несколькими выбранными книгами:

  [9780872865082]=>
  string(0) ""
  [9780872865198]=>
  string(1) "1"
  [9780872865709]=>
  string(0) ""
  [9780872866294]=>
  string(1) "1"
  [9780912678764]=>
  string(0) ""
  [9780930324872]=>
  string(1) "1"
  [9780941920056]=>
  string(0) ""
  [9780971084636]=>
  string(0) ""
  [9780975571644]=>
  string(0) ""
  [9781553800439]=>
  string(0) ""
  [9781556591075]=>
  string(0) ""
  [9781566892759]=>
  string(0) ""
  [9781570270871]=>
  string(0) ""
  [9781617753121]=>
  string(0) ""

Как изменить форму, чтобы данные отправлялись только, когда строка (1)"1"?

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Мое решение для этого состояло в том, чтобы использовать javascript для разделения ISBN, которые мы хотим заказать, в одно поле, которое затем можно опубликовать.

<script type="text/javascript">
    function updatesum() {
      var m=0, ISBN, order, list=[], count=<?php echo $k; ?>-1, quant;
          while (m <= count) {
            tmp = 'n'+m;
            quant = (Number(document.getElementById(tmp).value));
            ISBN = (Number(document.getElementById(tmp).name));
            order = quant+'.'+ISBN;
            if (quant>0) {list.push(order);}
            m++;
          }

      document.getElementById('list').value = list;
    }    

</script>
0 голосов
/ 06 декабря 2018

Может быть, что-то вроде этого:

while ($books = mysqli_fetch_array($booksq)){
    $bookISBN[$k]=$books['theISBN'];
    if ($Count == 1) {
        echo '<textarea name="'.$bookISBN[$k].'">'.$Count.'</textarea> ';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...