как я могу получить данные в ячейке таблицы, которая проверяется после отправки

0

может кто-нибудь мне помочь, пожалуйста.

вот мой основной html

<form action="addSomething.php" method="POST">
<table>
 <tr>
   <th>Add Data</th>
   <th>Description</th>
   <th>Quantity</th>  
</tr>

 <tr>
  <td><input type="checkbox" name="data[]" value="sample1" /> </td>
  <td class="desc">Newbie</td>
  <td>2</td>
 </tr>

<tr>
<td><input type="checkbox" name="data[]" value="sample1" /> </td>
<td class="desc">Pro</td>
<td>1</td>
</tr>

<tr>
<td><input type="checkbox" name="data[]" value="sample1"/> </td>
<td class="desc" > Master </td>
<td>1</td>
</tr>

<br/>
     <input type="submit" name="add" value="SUBMIT"/>
..... 

как я могу получить тот, у кого есть класс "desc" и столбец для количества, которое проверяется после отправки формы

потому что только я могу добавить, когда запрос в mysql является значением флажка, но я хочу также значение данных в столбце "Описание" и столбце "Количество"

В моем addSomething.php код, который у меня есть,

 if(isset($_POST['add']))
      {

           foreach($_POST['data'] as $value)
           {

           $sql = "INSERT INTO tablename (column1) VALUES('$value');"

                //query stuff
            }

      } 

что я буду делать, любые намеки на парней?

Теги:

7 ответов

1

Я бы посоветовал что-то вроде:

<form action="addSomething.php" method="POST">
<table>
 <tr>
   <th>Add Data</th>
   <th>Description</th>
   <th>Quantity</th>  
</tr>

 <tr>
  <td><input type="checkbox" name="data[0]" value="sample1" /> </td>
  <td class="desc">Newbie<input type="checkbox" name="desc[0]" value="Newbie" /></td>
  <td>2<input type="checkbox" name="quan[0]" value="2" /></td>
 </tr>

<tr>
<td><input type="checkbox" name="data[1]" value="sample1" /> </td>
<td class="desc">Pro<input type="checkbox" name="desc[1]" value="Pro" /></td>
<td>1<input type="checkbox" name="quan[1]" value="1" /></td>
</tr>

<tr>
<td><input type="checkbox" name="data[2]" value="sample1"/> </td>
<td class="desc" > Master <input type="checkbox" name="desc[2]" value="Master" /></td>
<td>1<input type="checkbox" name="quan[2]" value="1" /></td>
</tr>

<br/>
     <input type="submit" name="add" value="SUBMIT"/>
...

с php

 if(isset($_POST['add']))
      {

           foreach($_POST['data'] as $i => $value) {
              $desc = mysql_real_escape_string($_POST['desc'][$i]);
              $quan = mysql_real_escape_string($_POST['quan'][$i]);
              $sql = "INSERT INTO tablename (desc,quan) VALUES('$desc','$quan');"

                //query stuff
            }

      }

Вы должны явно указать свои поля в html, чтобы сохранить ассоциацию данных с помощью флажков.

1

вы можете указать свои флажки для разных значений

<input type="checkbox" name="data[]" value="newbie" />
<input type="checkbox" name="data[]" value="pro" />
<input type="checkbox" name="data[]" value="master" />

а затем в addSomething.php определите массив

$names = array('newbie'=>'Newbie', 'pro'=>'Pro', 'master'=>'Master');

и используйте его в своем sql

if(isset($_POST['add']))
  {
       foreach($_POST['data'] as $value)
       {
           $sql = "INSERT INTO tablename (column1) VALUES ('".$names[$value]."');";
        }
  }

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

0

Вам нужно либо поместить описание в скрытое поле, либо прочитать описание из базы данных. Я предлагаю более поздний вариант.

0

Вам нужно будет включить эти значения в скрытый ввод

<input type="hidden" name=" независимо " value=" любой > "

в качестве примера

0

Что вы можете сделать, это написать Javascript, который запускает запрос AJAX на ваш сервер.

В противном случае вы не сможете получить значения в предыдущем сообщении.

0

Я думаю, что лучший способ для вашего кода - создать javascript-функцию и называть ее отправкой формы:

<form action="addSomething.php" method="POST" onsubmit="return postVars()">

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

<input type="hidden" name="description" id="description">
<input type="hidden" name="quantity" id="quantity">

предоставить уникальный идентификатор вашему td s и передать идентификатор вашей функции js. заполните эти входы в вашей функции js:

document.getElementById('description').value = document.getElementById('td_' + id + '_description').innerHTML;
document.getElementById('quantity').value = document.getElementById('td_' + id + '_quantity').innerHTML;

и на вашей стороне сервера просто получите описание и количество от $_POST. надеюсь, что это было полезно;)

0

Это, безусловно, очень неэффективно. Выполнение запроса для каждого поля в вашей таблице.

  • 1
    +1, это не лучший способ делать то, что вы хотите сделать. Не за что.
  • 0
    спасибо за предложение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню