关于同名表单提交 并php获取数组结果!!(整整一天)

来源:互联网 发布:淘宝和天猫哪个生意好 编辑:程序博客网 时间:2024/06/05 02:14

在php中使用复选框

在php中使用复选框,他只会现实最后选择的值,有时比如要统计兴趣爱好的时候,要把选择的复选框集合到一起保存到数据库,此时可以这样:

将复选框名字favor改成favor[],如下所示:
<input type="checkbox" value="体育" name="favor[]" />
体育
<input type="checkbox" value="音乐" name="favor[]" />
音乐
<input type="checkbox" value="话剧" name="favor[]" />
话剧
<input type="checkbox" value="电影" name="favor[]" />
电影
<input type="checkbox" value="戏曲" name="favor[]" />
戏曲
<input type="checkbox" value="曲艺" name="favor[]" />
曲艺
<input type="checkbox" value="读书" name="favor[]" />
读书
<input type="checkbox" value="美食" name="favor[]" />
美食
<input type="checkbox" value="美酒" name="favor[]" />
美酒
<input type="checkbox" value="旅游" name="favor[]" />
旅游
<input type="checkbox" value="户外" name="favor[]" />
户外
<input type="checkbox" value="汽车" name="favor[]" />
汽车
<input type="checkbox" value="逛街购物" name="favor[]" />
逛街购物




在结果显示页增加此代码:

$array = $_POST["favor"];       //将所选的值组成的数组放入$array数组
//$num = count($array);           可以计算一共有多少项被选择
$interest = "";                 //设置一个空变量interest
for($i=0;$i<13;$i++)            //一共有13个选项,逐一循环
{
   if(isset($array[$i]))
      {
    $interest = $array[$i];
    for($i=$i+1;$i<13;$i++)
         {
            if(isset($array[$i]))
            $interest = $interest.",".$array[$i];
        }
    break;
      }
}
echo $interest;             //输出最后代码



结果如:
体育,音乐,电影,旅游,户外,汽车,明星

 

—————————————————————————————以上也适用于同名表单—————————————————————

 

(注意:1 php对同名表单要求组成数组提交  2 提交后获取要求先付值给数组 并整理成串  用逗号隔开)

 

 

注意:

网页上提交表单之后,php为什么不能获取提交的内容?

Q. 网页上提交表单之后,PHP为什么不能获取提交的内容?
A. 新版的PHP已经废弃了原来的表单内容处理方式,即不再把提交表单的内容直接
复制到一个同名变量中。解决办法有四个:
1. 修改php.ini,查找 register_globals,将其值修改为 On。这样就可以像原
来一样,例如,提交表单中包括一个名为"username"的变量,那么在php
就可以直接使用$username来访问该变量。但是,除非你要使用一段旧的代码
而考虑到兼容性问题,否则不建议使用该方法。
2. 使用 $HTTP_GET_VARS、$HTTP_POST_VARS数组来访问,例如写成
$HTTP_POST_VARS["username"]的形式。不过该方法也不建议采用。
3. (推荐)使用 $_POST、$_GET等数组来访问,例如写成 $_POST["username"]的
形式。建议采用这种方法。
4. (推荐)使用 import_request_variables 函数。该函数将提交内容导入到变
量中。例如 import_request_variables("gp", "rvar_");
第一个参数可以选择g,p,c,分别表示导入 GET,POST,COOKIE 变量;第二个参数
为导入后的变量前缀。执行上面的语句后即可使用 $rvar_username 来访问提交
的 username 变量。
Tips: 第三项中提到的预设变量有: $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIE,
$_FILES, $_ENV, $_REQUEST, $_SESSION等。详细信息请参考PHP手册。

 

PHP中Array数组教程
2009-05-21 16:38

PHP中Array数组教程
PHP中有很多数组相关的函数,一一用实例说明了in_array()、count()、array_push()、array_unshift()、array_merge()、array_pop()、array_shift()、sort()
in_array()函数
如果你有很大的一个数组,而所要完成的仅是找出一个存在的给定值,你可以使用in_array()以返回true 或 false。如下代码将输出“Not found in this array”——因为你将在$namesArray中寻找一个并不存在的“Alber ”。
<? $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$lookingFor = "Albert";
if (in_array($lookingFor, $namesArray)) {
echo "You've found it!";
} else {
echo "Not found in this array!";
}
?>

-----------------------------------------------------------

count()函数
如果你改变了$lookingFor的值,将其变为“Mary”,你将得到消息“You've found it!”——因为“Mary”是$namesArray的一部分。
如果希望对数组元素计数,你可以使用count()函数:
<? $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");
$count = count($namesArray); ?>

$count值将为7。

array_push()函数
你可以对任何数组添加元素,无论是在已存在数组的开始或末尾。你也可以使用函数以创建一个包含两个或多个数组元素的新数组。合并时每个数组将按需要的顺序排列。如果你的数组已经有内部的排序,你需要对新的合并数组重排序。让我们从对已存在数组的末尾增添元素开始,使用函数array_push():
<? /* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 加入到原始数组中 */
array_push($fruitArray, "grape", "pineapple", "tomato");
/* 通过其键值列出每个元素*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>

这将显示:
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : grape
6 : pineapple
7 : tomato

-----------------------------------------------------------
array_unshift()函数
当你需要对数组开头添加元素时,代码非常类似。不同处只是函数名:array_unshift() 而不是array_push()。
<? /* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 加入到原始数组中 */
array_unshift($fruitArray, "grape", "pineapple", "tomato");
/* 通过其键值列出每个元素*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>

这将显示:
0 : grape
1 : pineapple
2 : tomato
3 : apple
4 : orange
5 : banana
6 : kiwi
7 : pear

-----------------------------------------------------------
array_merge()函数
函数array_merge()合并两个或更多的数组。
<? /* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
<? /* 创建第二个数组 */
$vegArray = array("carrot", "green beans", "asparagus", "artichoke", "corn");
/* 合并为一个数组 */
$goodfoodArray = array_merge($fruitArray, $vegArray);
/* 通过其键值列出每个元素*/
while (list($key,$value) = each($goodfoodArray)) {
echo "$key : $value<br>";
}
?>

这将显示:
0 : apple
1 : orange
2 : banana
3 : kiwi
4 : pear
5 : carrot
6 : green beans
7 : asparagus
8 : artichoke
9 : corn
现在已经对数组进行了增加元素和合并,现在来练习删除元素函数。你可以使用函数array_pop()从一数组末尾删除一个元素。如果使用函数 array_shift(),则从一数组开头删除一个元素。而实际上当你从数组删除元素时,此元素对你而言仍然可用——当你从已存在的数组中对元素进行 pop 或 shift时。

-----------------------------------------------------------

array_pop()函数
使用array_pop()函数从数组末尾删除一个值:
<?
/* 创建一数组*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 在末尾弹出某值 */
$popped = array_pop($fruitArray);
/* 列出新数组内容,以及弹出的值*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
echo "<br>and finally, in $popped: $popped";
?>

这将显示:
0 : apple
1 : orange
2 : banana
3 : kiwi
and finally, in $popped: pear
array_shift函数
下面,从数组末尾删除某值:
<?
/* 创建一数组*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 从数组头部移出某值 */
$shifted = array_shift($fruitArray);
/* 列出新数组的内容以及移出的值*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
echo "<br>and finally, in $shifted: $shifted";
?>

这将显示:
0 : orange
1 : banana
2 : kiwi
3 : pear
and finally, in $shifted: apple

-----------------------------------------------------------
sort()函数
有很多函数可以帮助你对数组元素排序。但我将会演示基本的排序以帮助你了解其过程:
<? /* 创建原始数组 */
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 排序 */
sort($fruitArray);
/* 对其重设以正确从头到尾显示数组 */
/* 通过其键值列出每个元素*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value<br>";
}
?>

这将显示:
0 : apple
1 : banana
2 : kiwi
3 : orange
4 : pear