может кто-нибудь мне помочь, пожалуйста.
вот мой основной 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
}
}
что я буду делать, любые намеки на парней?
Я бы посоветовал что-то вроде:
<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, чтобы сохранить ассоциацию данных с помощью флажков.
вы можете указать свои флажки для разных значений
<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 и количество на интерфейсе. если вы это сделаете, вам нужно ввести туда входные данные и дать им уникальные имена.
Вам нужно либо поместить описание в скрытое поле, либо прочитать описание из базы данных. Я предлагаю более поздний вариант.
Вам нужно будет включить эти значения в скрытый ввод
<input type="hidden" name="
независимо " value="
любой > "
в качестве примера
Что вы можете сделать, это написать Javascript, который запускает запрос AJAX на ваш сервер.
В противном случае вы не сможете получить значения в предыдущем сообщении.
Я думаю, что лучший способ для вашего кода - создать 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. надеюсь, что это было полезно;)
Это, безусловно, очень неэффективно. Выполнение запроса для каждого поля в вашей таблице.