-1

我试图找到一种从多个复选框中获取值而不将它们命名为数组的方法。即我想为此获得同名的价值。

<input type="checkbox" name="name" >
<input type="checkbox" name="name" >
<input type="checkbox" name="name" >
<input type="checkbox" name="name" >

受此启发。

<input type="checkbox" name="name[]" >
<input type="checkbox" name="name[]" >
<input type="checkbox" name="name[]" >
<input type="checkbox" name="name[]" >

我知道这可以在CNET使用它时完成。

我想我必须通过这样的方式将此名称值转换为服务器端的数组。

$search= ($_GET['name']);
$array = array();
$array[] = $search;
$a= $arrry;
echo "$a";

这肯定行不通。

谁能告诉我怎么做。

谢谢。

4

5 回答 5

0

[]当然,如果没有inname属性,它在 PHP 中是不可能的。但是,如果您想name为所有复选框保持相同的名称,那么您必须使用 javascript/ jquery获取选定复选框的值。然后将该逗号分隔的值字符串发送到您的 php 页面。

   // This is how you will get the values of selected checkboxes
   var csv = '';    
   $('input:checkbox:checked').each(function (i) {
       csv+= this.value + ',';
   });
   alert(csv); // alerts 1,2,3,4,

演示:http: //jsfiddle.net/codef0rmer/nssQZ/

于 2012-08-10T05:49:44.613 回答
0

您可以跟踪onSubmit事件。

当它被触发时(对于托管输入的表单),将每个输入的名称更改为唯一的名称(例如 name-1、name-2)或只是 name[]。

您将在服务器端获得的内容将很容易处理。

于 2012-08-10T07:21:52.720 回答
0

您需要处理 QUERY_STRING(或 $HTTP_RAW_POST_DATA) 而不是访问 $_GET(或 $_POST)

示例(您需要对其进行改进,因为您不能相信数据字符串的正确格式):

 $__POST=array();
 $__GET=array();
 foreach(array('POST'=>file_get_contents("php://input"),
               'GET'=>$_SERVER['QUERY_STRING']) as $k=>$v)
 {
   $vv=explode('&',$v);
   foreach($vv as $value)
   { 
    parse_str($value,$var);
    if(!isset(${'__'.$k}[key($var)]))
     {
      ${'__'.$k}[key($var)]=array(reset($var));
     }
     else
     {
      ${'__'.$k}[key($var)][]=reset($var);
     }
   }
 }
print_r(array($__GET,$__POST));
于 2012-08-10T07:23:11.393 回答
-1

不可能。

如果您设置相同的名称(这通常是无效的标记 TOO),则只会检索最后检查的值。

于 2012-08-10T05:21:03.277 回答
-1

$_GET['name'] 是数组,所以如果使用想要在其中引用值,您可以使用

$_GET['name'][0] // return the first value

或者如果您想将其转换为字符串

$getValue = implode(',',$_GET['name']); // return "value1,value2,value3,value4,value5"

将获取字符串格式的值

于 2012-08-10T05:21:35.920 回答