有一行代码困扰我好多天了,百思不得其解
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
这里的value值会自动填充到todelete数组里吗?文档里面说方法括号会导致$_POST创造一个数值,并且把value属性值全部赋给name属性的todelete数组。这是为什么呢? 谁能详细讲讲过程
源文件:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Make Me Elvis - Remove Email</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<img src="blankface.jpg" width="161" height="350" alt="" style="float:right" />
<img name="elvislogo" src="elvislogo.gif" width="229" height="32" border="0" alt="Make Me Elvis" />
<p>Please select the email addresses to delete from the email list and click Remove.</p>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
$dbc = mysqli_connect('data.makemeelvis.com', 'elmer', 'theking', 'elvis_store')
or die('Error connecting to MySQL server.');
// Delete the customer rows (only if the form has been submitted)
if (isset($_POST['submit'])) {
foreach ($_POST['todelete'] as $delete_id) {
$query = "DELETE FROM email_list WHERE id = $delete_id";
mysqli_query($dbc, $query)
or die('Error querying database.');
}
echo 'Customer(s) removed.<br />';
}
// Display the customer rows with checkboxes for deleting
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result)) {
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
echo $row['first_name'];
echo ' ' . $row['last_name'];
echo ' ' . $row['email'];
echo '<br />';
}
mysqli_close($dbc);
?>
<input type="submit" name="submit" value="Remove" />
</form>
</body>
</html>
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
这里的value值会自动填充到todelete数组里吗?文档里面说方法括号会导致$_POST创造一个数值,并且把value属性值全部赋给name属性的todelete数组。这是为什么呢? 谁能详细讲讲过程
源文件:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Make Me Elvis - Remove Email</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<img src="blankface.jpg" width="161" height="350" alt="" style="float:right" />
<img name="elvislogo" src="elvislogo.gif" width="229" height="32" border="0" alt="Make Me Elvis" />
<p>Please select the email addresses to delete from the email list and click Remove.</p>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
$dbc = mysqli_connect('data.makemeelvis.com', 'elmer', 'theking', 'elvis_store')
or die('Error connecting to MySQL server.');
// Delete the customer rows (only if the form has been submitted)
if (isset($_POST['submit'])) {
foreach ($_POST['todelete'] as $delete_id) {
$query = "DELETE FROM email_list WHERE id = $delete_id";
mysqli_query($dbc, $query)
or die('Error querying database.');
}
echo 'Customer(s) removed.<br />';
}
// Display the customer rows with checkboxes for deleting
$query = "SELECT * FROM email_list";
$result = mysqli_query($dbc, $query);
while ($row = mysqli_fetch_array($result)) {
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
echo $row['first_name'];
echo ' ' . $row['last_name'];
echo ' ' . $row['email'];
echo '<br />';
}
mysqli_close($dbc);
?>
<input type="submit" name="submit" value="Remove" />
</form>
</body>
</html>
<form action="" method="POST">
<?PHP
print_r($_POST);
echo '<input type="checkbox" value="array 1" name="todelete[]" />';
echo '<input type="checkbox" value="array 2" name="todelete[]" />';
echo '<input type="checkbox" value="记得结贴" name="todelete_only" />';?>
<input type="submit" />
</form>
while ($row = mysqli_fetch_array($result)) {
echo '<input type="checkbox" value="' . $row['id'] . '" name="todelete[]" />';
//
}
因为参与了循环。会从Db 里面读取数据。。
(2)todelete[]是个数组吗?什么时候创建的?点选checkbox值为什么会存进去?
诚心指教
(1)value="' . $row['id'] . '" 为什么$row['id']前后要加. 起什么用途?
这个加“.”是为了连接起来,你也可以用“,”来连接,用这个也快一点,PHP里面的“.”是用来连接字符串
的。
第二个,我只是知道是个数组,至于你后面说的存数据进去,确实不知道是什么意思。