4

as ussual I wanted to use multiple select.

<select  multiple="multiple" class="form-control" name="kraj[]">
<option value="1">Středočeský</option>
<option value="2">Jihočeský</option>
<option value="3">Plzeňský</option>
<option value="4">Jihomoravský</option>
<option value="5">Vysočina</option>
<option value="6">Moravskoslezský</option>
<option value="7">Ústecký</option>
<option value="8">Olomoucký</option>
<option value="9">Kralovehradecký</option>
<option value="10">Pardubický</option>
<option value="11">Zlínský</option>
<option value="12">Karlovehradecký</option>
<option value="13">Liberecký</option>
<option value="14">Praha</option>

But this time i am not getting data from this. Other parts of form working properly but after selecting some options i get an empty array of kraj[]. print_r looks like:

`Array ( ...

[delka] => 5000

[kraj] => 

[onoffswitch] => on
...

)`

I just cant see, what is wrong, im kinda desperate. Deadline tommorow, and stuck at this :D

4
  • 1
    Tried with name="kraj" ? Commented Nov 7, 2013 at 15:03
  • Did you close the select? Commented Nov 7, 2013 at 15:03
  • yes, select is closed. when you puy just name="kraj", it will send just one value. I need multiple. Commented Nov 7, 2013 at 15:05
  • and web browser console that sends in that array "kraj"?? Commented Nov 7, 2013 at 15:18

2 Answers 2

1

Can you try this,

HTML:

       <form method="POST" >         
           <select  multiple="multiple" class="form-control" name="kraj[]">
            <option value="1">Středočeský</option>
            <option value="2">Jihočeský</option>
            <option value="3">Plzeňský</option>
            <option value="4">Jihomoravský</option>

            etc
          </select>

           <input name="submit" value="Submit" type="submit">
       </form>

PHP:

             if(isset($_POST)){

                     foreach ($_POST['kraj'] as $selectedOpt){
                        echo $selectedOpt."\n";                 
                     }                  
                }

         echo "<pre>";
             print_r($_POST);
         echo "</pre>";

OUTPUT:

                 Array
                (
                    [kraj] => Array
                        (
                            [0] => 1
                            [1] => 2
                            [2] => 3
                        )

                )
Sign up to request clarification or add additional context in comments.

Comments

1

I cannot replicate your issue - your script works as intended.

Tried the following:

<?php

if (sizeof($_POST)) {
    var_dump($_POST);
}

?>
<form method="post" action="">
<select  multiple="multiple" class="form-control" name="kraj[]">
    <option value="1">Středočeský</option>
    <option value="2">Jihočeský</option>
    <option value="3">Plzeňský</option>
    <option value="4">Jihomoravský</option>
    <option value="5">Vysočina</option>
    <option value="6">Moravskoslezský</option>
    <option value="7">Ústecký</option>
    <option value="8">Olomoucký</option>
    <option value="9">Kralovehradecký</option>
    <option value="10">Pardubický</option>
    <option value="11">Zlínský</option>
    <option value="12">Karlovehradecký</option>
    <option value="13">Liberecký</option>
    <option value="14">Praha</option>
</select>
<input type="submit" />
</form>

After submit:

enter image description here

1 Comment

That bug was elsewhere. Our company have "new cool custom framework" and it discarded whole array, while filtering XSS. Thx for help :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.