成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

PHP開發(fā)中接收復(fù)選框信息的方法

2010-08-28 10:48:27來源:西部e網(wǎng)作者:

    PHP接收多個同名復(fù)選框信息不像ASP那樣自動轉(zhuǎn)換成為數(shù)組,這給使用帶來了一定不便。但是還是有解決辦法的,就是利用javascript做一下預(yù)處理。多個同名復(fù)選框在javascript中還是以數(shù)組的形式存在的,所以在表單提交之前可以利用javascript把復(fù)選框中的信息組合成一個字符數(shù)組賦值給表單中的隱藏元素,然后用PHP中的explode函數(shù)解析此數(shù)組,這樣就可以實現(xiàn)復(fù)選框信息的傳遞了。下面舉例說明。

  假設(shè)有這樣一個表單:

<form name="form1" id="form1" method="post" action="myphp.php" onSubmit="return Checker()">
<input type="checkbox" name="item" value="1">1<br>
<input type="checkbox" name="item" value="2">2<br>
<input type="checkbox" name="item" value="3">3<br>
<input type="checkbox" name="item" value="4">4<br>
<input type="hidden" name="items" value="">
<input type="submit" value="Submit">
</form>

  這個表單有四個名字都是item的復(fù)選框,當(dāng)用戶單擊Submit按鈕的時候,Checker函數(shù)會被調(diào)用,并且如果Checker返回true表單就被提交,返回false表單就不會被提交。這里Checker函數(shù)就是我們要編寫的預(yù)處理函數(shù)。在HTML的header部分添加下面的javascript:

<script language="javascript">
<!--
function Checker()
{
 form1.items.value = "";
 if ( !form1.item.length ) // 只有一個復(fù)選框,form1.item.length = undefined
 {
  if ( form1.items.checked )
   form1.items.value = form1.item.value;
 }
 else
 {
  for ( i = 0 ; i < form1.item.length ; i++ )
  {
   if ( form1.item(i).checked ) // 復(fù)選框中有選中的框
   {
    form1.items.value = form1.item(i).value;
    for ( j = i + 1 ; j < form1.item.length ; j++ )
    {
     if ( form1.item(j).checked )
     {
      form1.items.value += " "; //用空格做分割符
      form1.items.value += form1.item(j).value;
     }
    }
    break;
   }
  }
 }
 return true;
}
-->
</script>

  這樣就可以把所有選中的復(fù)選框的value組合成為一個字符串?dāng)?shù)組,在myphp.php使用這樣的語句:

$items = explode(" ", $HTTP_POST_VARS["items"]);

  就可以把這些選項分離出來成為數(shù)組。需要注意的是選項中的value不能包含分割符(這里是空格)。

贊助商鏈接:

主站蜘蛛池模板: 木里| 交口县| 泰宁县| 常宁市| 两当县| 三亚市| 泽州县| 河南省| 南召县| 大港区| 秭归县| 玛沁县| 平顶山市| 连云港市| 马鞍山市| 额敏县| 吉安县| 星座| 财经| 绍兴市| 临沭县| 永安市| 泰兴市| 全椒县| 禄劝| 麻城市| 娱乐| 封开县| 藁城市| 黄石市| 正安县| 南陵县| 会东县| 安泽县| 大余县| 吴江市| 平邑县| 延长县| 察雅县| 无锡市| 景德镇市|