• 如何用Ajax传一个数组数据


    PHP接收多个同名复选框信息不像ASP那样自动转换成为数组,这给使用带来了一定不便。但是还是有解决办法的,就是利用javascript做一下预处 理。多个同名复选框在javascript中还是以数组的形式存在的,所以在表单提交之前可以利用javascript把复选框中的信息组合成一个字符数 组赋值给表单中的隐藏元素,然后用PHP中的explode函数解析此数组,这样就可以实现复选框信息的传递了。下面举例说明。
    
    假设有这样一个表单:
    1
    2
    3
    4
     
    
    这个表单有四个名字都是item的复选框,当用户单击Submit按钮的时候,Checker函数会被调用,并且如果Checker返回true表单 就被提交,返回false表单就不会被提交。这里Checker函数就是我们要编写的预处理函数。在HTML的header部分添加下面的 javascript:
    function Checker() 
    { 
    	form1.items.value = ""; 
    	if ( !form1.item.length ) // 只有一个复选框,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 ) // 复选框中有选中的框 
       		{ 
       			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; 
    } 
    
    这样就可以把所有选中的复选框的value组合成为一个字符串数组,在myphp.php使用这样的语句:
    1	$items = explode(" ", $HTTP_POST_VARS["items"]); 
    
    就可以把这些选项分离出来成为数组。需要注意的是选项中的value不能包含分割符(这里是空格)。
    
  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/flying-tx/p/3699739.html
Copyright © 2020-2023  润新知