早上好,
我正在开展一个更大的项目,但我试图做一个简单的页面来检查我的工作。 php / mysql newb here。抱歉! :)
我想要完成的是最终只有一个用户页面,其中显示了来自表格和单个复选标记的任务行,以便通过选中或取消选中该框来说明用户是否已完成任务。
出于测试目的,我已经设置了一个包含testid,testdata和testcheck的行的表。 testid是INT(2)AutoIncrement和Primary和Unique,testdata是VARCHAR(30),testcheck是TINYINT(1)。自动增量并不重要,因为我手动填充了所有行。我有5行(为数组的缘故)由1-5 testid组成," testdata1-5"对于testdata和0或1进行testcheck。该表运行正常,可以查询数据库。
以下是php开始页面的代码:
<html>
<?php
include_once('init.php');
$query = mysql_query("SELECT testid, testdata, testcheck FROM testtable");
?>
<h1>Test form for checkmarks</h1>
<form method="POST" action="testover.php">
<table border="1">
<tr>
<td>
Test ID
</td>
<td>
Test Data
</td>
<td>
Checked
</td>
<td>
Test Check
</td>
</tr>
<?php
while ( $row = mysql_fetch_assoc($query)) {
?>
<tr>
<td>
<?php echo $row['testid']; ?>
</td>
<td>
<?php echo $row['testdata']; ?>
</td>
<td>
<center><input type="checkbox" name="<?php $row['testid'] ?>" value="<?php $row['testcheck']; ?>" <?php if($row['testcheck']=='1'){echo 'checked';} ?>></center>
</td>
<td>
<center><?php echo $row['testcheck']; ?></center>
</td>
</tr>
<?php } ?>
</table>
<input type="submit" name="confirm" value="Confirm Details">
<a href="testcheck.php"><input type="button" value="Home"></a>
</form>
</html>
我一直在来回尝试使用数组作为输入名称(name =&#34; something []&#34;)或者#34; isset&#34;参数,但这是我的知识失败的地方。我在这里和其他网站上阅读了无数文章,我似乎无法找到合适的代码。大多数网站都有包含多个复选框的行或其表格的不同布局。
我发布在这里,希望能够指出如何使用这些复选标记值来更新数据库。
答案 0 :(得分:0)
我试图理解你想要的代码,如果我理解正确,你想要输出那5行吗?
<?php
echo '<form action=''>;
while ( $row = mysql_fetch_array($query)) {
echo "<tr>";
echo "<td>".$row['testid']."</td>";
echo "<td>".$row['testdata']."</td>";
echo "<td><input='checkbox' name='".$row['testid']."' value='".$row['testcheck']."' ".if($row['testcheck']=='1'){echo 'checked';}."></td>";
echo "<td>".$row['testcheck']."</td>";
echo "</tr>";
}
echo "<input type='submit' name='confirm'>";
echo "</form>";
?>
然后更新。由于表单没有动作,它返回自身。因此,现在您可以在页面顶部添加新的PHP和更新代码。
<?php
if(isset($_POST['confirm'])){ // the name of your submit button
// your update code here.
?>
- 编辑 -
Checkbox looping in php while posting to database
我前一段时间遇到了和你一样的问题。我需要循环复选框才能发布。请查看此主题以获取相关信息。
答案 1 :(得分:0)
这是我的新代码。我知道我在正确的轨道上。在撰写isset语句等时需要一些指导。
<?php
include_once('init.php');
$query = mysql_query("SELECT testid, testdata, testcheck FROM testtable");
$checkedarray = $_POST['isChecked'];
if(isset($_POST['confirm'])) {
if(isset($checkedarray)){ // the name of your submit button
foreach ($checkedarray as $value)
mysql_query("UPDATE testtable SET testcheck = '{$value}' WHERE testid = {$_POST['testid']}"); } }
?>
<h1>Test form for checkmarks</h1>
<table border="1">
<tr>
<td>
Test ID
</td>
<td>
Test Data
</td>
<td>
Checked
</td>
<td>
Test Check
</td>
</tr>
<?php
echo '<form action="">';
while ( $row = mysql_fetch_array($query)) {
echo "<tr>";
echo "<td>".$row['testid']."</td>";
echo "<td>".$row['testdata']."</td>"; ?>
<td><input type="checkbox" name="isChecked[]" value="<?php $row['testcheck']; ?>" <?php if($row['testcheck']=='1'){echo 'checked';} ?>></td>
<?php
echo "<td>".$row['testcheck']."</td>";
echo "</tr>";
}
echo "<input type='submit' name='confirm'>";
echo "</form>";
?>
<a href="testcheck.php"><input type="button" value="Home"></a>
</form>
</html>