2013-03-03 15 views
6

私はいくつかの項目を持っている複数の選択リストを持っています。これは、ACLのIPアドレスのリストです。 IPを追加/削除してリストを保存することができます。ただし、リストの項目を選択しない限り、$_POST[selectName]には値は含まれません。どうすればこれを達成できますか?私はjavascriptでこれを行うことができますが、私はむしろPHPに固執したいと思います。選択リストにすべてのオプションをPOSTするにはどうすればよいですか?

+4

ブラウザはこれらの値をPHPに送信しないため、JavaScriptを使用してthを操作する必要があります提出プロセス。したがって、これを行うPHPの方法はありません –

+0

あなたはこれを見たことがありますか? http://stackoverflow.com/questions/2407284/how-to-get-multiple-selected-values-of-select-box-in-php – Kamil

+2

これを行う伝統的な方法は、選択を複数選択可能にすることですフォームの提出にはjavascriptですべてのオプションを選択してください。 – Jodes

答えて

14

編集/修正:JSが必要です。 POSTを介してすべての(選択された、選択されていない)オプションを送信する方法はありません。提出する前にすべてのオプションをプログラムで選択する必要があります。

形式でファイル(file1.php):POST(file2.php)を受信

<script type="text/javascript"> 
    function selectAll() 
    { 
     selectBox = document.getElementById("someId"); 

     for (var i = 0; i < selectBox.options.length; i++) 
     { 
      selectBox.options[i].selected = true; 
     } 
    } 
</script> 

<form method="post" action="file2.php"> 
    <select id="someId" name="selectName[]" multiple> 
     <option value="123.123.123.123">123.123.123.123</option> 
     <option value="234.234.234.234">234.234.234.234</option> 
    </select> 
    <input type="submit" name="submit" value=Submit onclick="selectAll();"> 
</form> 

ファイル:

<?php 
    foreach ($_POST['selectName'] as $item) 
    { 
    print "$item<br/>"; 
    } 
?> 
+0

彼は、選択されたものだけでなく、 'multiple'から送信された利用可能な値をすべて*すべて*必要とします。 –

+0

@Pekkaおかげで、多分選択肢としてこれらのオプションをすべて設定する必要がありますか? – Kamil

+0

yup;彼はそのためにJavaScriptを必要とします。 –

2

ちょうどあなたがまたのjQueryのバージョンを使用することができ、この上タックしますループより少しシンプルな@ Kamilのコード:

<script type="text/javascript"> 
jQuery('[name="form1"]').on("submit",selectAll); 

function selectAll() 
{ 
    jQuery('[name="selectName[]"] option').prop('selected', true); 
} 

</script> 
<form name="form1" method="post" action="file2.php"> 
<select id="someId" name="selectName[]" multiple> 
    <option value="123.123.123.123">123.123.123.123</option> 
    <option value="234.234.234.234">234.234.234.234</option> 
</select> 
<input type="submit" name="submit" value=Submit onclick="selectAll();"> 
</form> 
関連する問題