-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

onSubmitイベントを追跡できます。

トリガーされたら(入力をホストするフォームの場合)、各入力の名前を一意の名前(name-1、name-2など)または単にname[]に変更します。

サーバーサイドで取得するものは簡単に処理できます。

于 2012-08-10T07:21:52.720 に答える
0

$_GET(または $_POST) にアクセスする代わりに、QUERY_STRING(または $HTTP_RAW_POST_DATA) を処理する必要があります。

サンプル(データ文字列の適切な形式を信頼できないため、改良する必要があります):

 $__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 に答える
0

[]確かに、name属性に がないと PHP では不可能です。ただし、すべてのチェックボックスに同じ名前を付けたい場合は、 javascript/ jquerynameを使用して、選択したチェックボックスの値を取得する必要があります。そして、コンマで区切られた値の文字列を 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 に答える
-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 に答える