php处理多值输入(接收数组)
<html>
<body>
<form. action="multivalue.php" method="post">
What's your favorite programming language?<br /> (check all that apply):<br />
<input type="checkbox" name="languages[]" value="csharp" />C#<br />
<input type="checkbox" name="languages[]" value="jscript" />Javascript<br />
<input type="checkbox" name="languages[]" value="java" />Java<br />
<input type="checkbox" name="languages[]" value="php" />PHP<br />
<input type="checkbox" name="languages[]" value="ruby" />Ruby<br />
<!-- 这里name是数组格式 -->
<input type="submit" name="submit" value="Go!" />
</form>
</body>
</html>
<?php
if (isset($_POST['submit']))
{
echo "You like the following languages:<br />";
foreach($_POST['languages'] AS $language) echo "$language<br />";
// 这里接收的languages是数组名
}
?>
php产生forms
原理: 用程序控制echo打出html代码。
建立数据库cor并建立表格
CREATE TABLE `language` (
`id` SMALLINT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 30 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;
并插入几种语言的名称。
dropdown.php
<?php
function create_dropdown($id,$pairs,$firstentry,$multiple="")
{
$dropdown = "<select name=\"$id\" multiple=\"$multiple\">";
//注意esaping character
$dropdown .= "<option name=\"\">$firstentry</option>";
foreach ($pairs AS $value => $name)
{
$dropdown .= "<option name=\"$value\">$name</option>";
}
echo "</select>";
return $dropdown;
}
if (!($connection = mysql_connect("localhost","root","apmsetup")))
die ("Cannot connect");
if (!(mysql_select_db("cor",$connection)))
die ("Cannot select DB");
$query ='SELECT id,name FROM `language` ORDER BY name';
$result = @mysql_query($query,$connection);
while ($row = @mysql_fetch_array($result))
{
$value = $row["id"];
$name = $row["name"];
$pairs["$value"] = $name;
}
echo "Choose your preferred language: <br />";
echo create_dropdown("language",$pairs,"Choose One:");
//因为 create_dropdown返回的是一串其实是html表单代码的字符串,所以之前用echo
?>
有预选的项目,只要添加一个参数
function create_dropdown($id,$pairs,$firstentry,$multiple="",$key="")
{
$dropdown = "<select name=\"$id\" multiple=\"$multiple\">";
$dropdown .= "<option name=\"\">$firstentry</option>";
foreach ($pairs AS $value => $name)
{
$dropdown .= ($value == $key) ?
"<option name=\"$value\" selected=\"selected\">$name</option>" :
"<option name=\"$value\">$name</option>";
// 使用了 ? : 操作符, 在预选的那项打出 selected="selected"
}
echo "</select>";
return $dropdown;
}
然后
echo create_dropdown("language",$pairs,"Choose One:","",4);
PHP,Javascript和表单的协作
原理: 在Js的事件触发的地方(比如onClick),用php产生某些js函数的参数
比如 nClick="myfunction(<?=$myid?>);"