我已经对此进行了两天的研究,并且几乎可以正常工作...问题是,当我在动态填充的表单上选中两个复选框时,我插入了四条记录。它变得更奇怪了……其中一条记录是独一无二的。三个有相同的信息。我完全迷失在这里。
这是表单的代码:
<form name="form1" id="form1" method="post" action="insert_zip_codes.php?u=<?php echo $_SESSION['username'] ?>">
<table class="bordered" cellspacing="0">
<tr><th>City</th><th>State</th><th>ZIP Code</th></tr>
<?php while($row = mysql_fetch_array($rs)) { ?>
<tr><td><input name="zip_code[]" type="checkbox" id="zip_code" value="<?php echo $row[zip_code] ?>" /></td><td><?php echo $row[city] ?></td><td><?php echo $row[state] ?></td><td><?php echo $row[zip_code]?></td></tr>
<?php } ?>
</table><br />
<input type="submit" name="Submit" value="Submit" />
</form>
这是下一页插入语句的代码。
<?php $u = $_GET['u']; ?>
<?php var_dump($_REQUEST); ?> </br> </br>`
<?php foreach ($_POST['zip_code'] as $zip_code) {
$query = "INSERT INTO user_zip_save(username, zip_code) VALUES ('$u','".$zip_code."')";
mysql_query($query);
}
if(mysql_query($query))
{
echo 'success';
}
else
{
echo 'failure' .mysql_error();
}
echo $query; // print the sql to screen for de-bugging
$results = mysql_query($query); ?>
当我点击提交时,打印出以下内容并成功插入数据库。
["zip_code"]=> array(2) { [0]=> string(5) "97477" [1]=> string(5) "97478" }
看起来不错,对吧?但是随后数据库获取了这些记录...
id 40 username *** zip_code 97478
id 41 username *** zip_code 97478
id 42 username *** zip_code 97478
id 43 username *** zip_code 97477
如您所见,该死的事情是只输入在页面上检查的第一个邮政编码一次(作为第四条记录),但首先输入第二个邮政编码三次。
知道为什么吗?我不知所措。
先感谢您!!!:)