请有人帮我。
这是我的基本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
}
}
我会做什么,有什么暗示吗?
答案 0 :(得分: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]."');";
}
}
这仅适用于您不希望用户编辑前端的描述和数量的情况。如果你这样做,你需要在那里输入输入并给它们唯一的名字。
答案 1 :(得分: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中明确编号您的字段,以保留数据与复选框的关联。
答案 2 :(得分:0)
您可以做的是编写触发AJAX请求的Javascript到您的服务器。
否则,您将无法在之前的提交中获得值。
答案 3 :(得分:0)
到目前为止,这是非常低效的。对表中的每个字段执行查询。
答案 4 :(得分:0)
您必须将描述放在隐藏字段中或从数据库中读取描述。 我建议后一个选项。
答案 5 :(得分:0)
您需要将这些值包含在隐藏的输入
中 <input type="hidden" name="
{任何{1}}任何&GT; " value="
作为例子
答案 6 :(得分:0)
我认为代码的最佳方式是创建一个javascript函数并在提交表单时调用它:
<form action="addSomething.php" method="POST" onsubmit="return postVars()">
当您提交表单时,将调用此函数。创建一个2个隐藏的表单,如下所示:
<input type="hidden" name="description" id="description">
<input type="hidden" name="quantity" id="quantity">
为你的td提供一个唯一的id并将id传递给你的js函数。在js函数中填写这些输入:
document.getElementById('description').value = document.getElementById('td_' + id + '_description').innerHTML;
document.getElementById('quantity').value = document.getElementById('td_' + id + '_quantity').innerHTML;
并且在您的服务器端只需从$ _POST获取描述和数量。 希望它有所帮助;)