結論から言えば、書き方だけの問題で、思った通りに動作します。ただ、JavaScript でアクセスする場合は id 属性を定義するほうが良いです。しかし、名前に関して二重の管理が必要になるのを避けたい場合はこのような方法も選択肢の一つではあると思います。 ※ PHP 側のアクセスは、最初からグループ分けが可能ですし、便利な書き方です。DOM を使ったコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function checkForm() {
if ( !confirm("送信してよろしいですか?") ) {
return;
}
// 本来は、ここで入力チェックを実行し、
// エラーならば return false; を実行する
var obj;
obj = document.getElementsByName("list[in][]");
alert(obj[0].value);
alert(obj[3].value);
obj = document.getElementsByName("list[out][]");
alert(obj[0].value);
alert(obj[3].value);
return true;
}
</script>
</head>
<body>
<form onsubmit='return checkForm();'>
<input type="submit">
<br>
<input type="text" name="list[in][]" value="A">
<input type="text" name="list[in][]" value="B">
<input type="text" name="list[in][]" value="C">
<input type="text" name="list[in][]" value="D">
<br>
<input type="text" name="list[out][]" value="V">
<input type="text" name="list[out][]" value="W">
<input type="text" name="list[out][]" value="X">
<input type="text" name="list[out][]" value="Y">
</form>
<pre>
<?php
print_r($_GET);
?>
</pre>
</body>
</html>
jQuery を使ったコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
// ***********************************************
// Form が送信前に実行されるイベント
// event.preventDefault(); で送信をキャンセル
// ***********************************************
$( "form" ).submit(function( event ) {
if ( !confirm("送信してよろしいですか?") ) {
event.preventDefault();
return;
}
// 本来は、ここで入力チェックを実行し、
// エラーならば event.preventDefault() を実行する
alert( $("input[name='list[in][]']:eq(0)").val() );
alert( $("input[name='list[in][]']:eq(3)").val() );
alert( $("input[name='list[out][]']:eq(0)").val() );
alert( $("input[name='list[out][]']:eq(3)").val() );
});
});
</script>
</head>
<body>
<form>
<input type="submit">
<br>
<input type="text" name="list[in][]" value="A">
<input type="text" name="list[in][]" value="B">
<input type="text" name="list[in][]" value="C">
<input type="text" name="list[in][]" value="D">
<br>
<input type="text" name="list[out][]" value="V">
<input type="text" name="list[out][]" value="W">
<input type="text" name="list[out][]" value="X">
<input type="text" name="list[out][]" value="Y">
</form>
<pre>
<?php
print_r($_GET);
?>
</pre>
</body>
</html>
|
|
【PHPの最新記事】
- ロリポップのモジュール版 PHP でエラーを出力する方法
- PHP : unset によるオブジェクトのプロパティのと配列の要素の削除
- レンタルサーバで PHP のバージョンを 5.4 から 5.6 に変更する時の注意事項
- 【3大手法】 PHP で変数を埋め込んだ画面定義を外部ファイルにして、ループ内で展開する
- PHP で pathinfo と mime 情報やその他を合体した、get_finfo 関数を使って、opendir からファイル一覧を出力
- Windows で、MySQL を使っているので phpMyAdmin で参照しようとして、AN HTTPD だと setup が動かなかったので Apache を入れようとしたらいろいろルールがあっ..
- PHP : ファイルのアップロード時のデータのダンプ( PHP 5.4.0 以降で利用可能な php://input での取得 / ASP / C# )
- PHP で問い合わせ画面のページリンクを常に5つ作成しておいて、jQuery でいらないリンクを非表示にする
- PHP の簡易ログとしては file_put_contents が使われますが、表現方法をいろいろテストして行くと、PHP のバージョンを 5.4.0 以上にして json_encode を使いたくな..
- さくらのサーバーで hash_hmac のアルゴリズムで使えるもの
- Pear を使用してダウンロード時のみ zip 圧縮してブラウザにデータを送る( プログレスバーはでません )
- Windows 環境で Pear のインストール
- PHP : php-5.3.1 の日付関数の注意点
- PHP : 暗号化と複合( libmcrypt )
- begin で始まるテキストで添付されたファイル(uuencode)を元に戻す方法


DOM を使ったコード




