这会列出数据库中的所有人,并为每一个人提供一个下拉列表,我想这样做,所以当我点击一个提交按钮时,它会为每个人输入单独的值。
所以,如果你对于标记为“bobby no”而言是肯定的,而对于dustin则为“是”,那么你可以提交,并且它将输入那些值
$results = mysql_query("SELECT * FROM `$tabeluser` WHERE buss='$buss' ORDER BY id DESC LIMIT 1");
while($rows = mysql_fetch_array($results) )
{
fn = $_POST['firstname'];
echo $fn;
?>
<form>
<select name="check">
<option>no</option>
<option>yes</option>
</select>
<?php
<input type="submit" name="submit">
?>
<form>
<?php
}
mysql_query("INSERT INTO `$fn` (buss) VALUES ('$_POST[check]')");
答案 0 :(得分:0)
首先,您为每个记录创建<form>
和submit
按钮。这是错误的,因为你想一次更新多个值
应该是什么样的:
<form>
<?php
while($rows = mysql_fetch_array($results)) {
print '<select name="check[]"> .. </select>';
}
?>
<input type="submit" name="submit" />
</form>
其次,您的代码格式化,就好像您希望在将代码发送到浏览器后立即获得$ _POST [check]。 这不是PHP的工作原理。在打印实际页面内容之前,您需要分离已发布值的逻辑。 PHP是服务器端,这意味着它不会获取任何数据,除非从头开始调用脚本。所以,这应该看起来像:
<?php
if (isset($_POST["check"])) {
// handle posted data.
}
else {
// show form
}
// or show form here, without an else, if you want to always show a form,
// even when you have posted values.
?>
最后但并非最不重要的是,您需要找到一种方法来了解哪个发布值属于您的每条记录。你现在的方式(<select name="check">') it will just return you one single value.
`)你将得到所有的值,但你仍然无法轻易识别每个记录的值。
相反,您可能想要做一些类似的最终结果:
If you write it the way I intentionally did above (
<?php
// get mysql records into an array (say $my_array)
if (isset($_POST["submit"])) {
foreach($my_array as $record) {
if (isset($_POST["select_of_id_".$record["id"])) {
// insert additional value into db
}
}
}
print '<form>';
foreach($my_array as $record) {
print '<select name="select_of_id_'.$record["id"].'">';
print '<option value="0">no</option><option value="1">yes</option>';
print '</select>';
}
print '<input type="submit" name="submit"/>';
print '</form>';
?>
答案 1 :(得分:0)
代码中所需的更改: -
<select name="check[]">
<option value="<?php echo $userId;?>_0">no</option>
<option value="<?php echo $userId;?>_1">yes</option>
</select>
您应该在DB中进行更改它有助于轻松维护您的数据。
创建新表,您可以使用相应的帖子
保存多个用户检查数据for e.g post_id user_id check
101 111 0
101 112 1
如何存储来自您的数据
在发布数组中,您将获得check
数组,您将在其中获得多个检查值
101_0
如果没有选中,102_1
如果选择是。现在你需要爆炸这个值。
$_POST['check'] = array(0 => `101_0`, 1 => 102_1);
在内部循环中,您可以提取用户ID和相应的选中值。
例如
$checked = explode('_','101_0');
$userId = $checked[0];
$check = $checked[1];