Я использую Jquery Multiselect Widget, чтобы иметь раскрывающийся список с опцией mulitselect. Я заполняю раскрывающийся список данными из базы данных MySql. Мне не удалось передать несколько значений в php-файл в $ _POST.
Мой HTML и PHP-код для Multiselect DropDown.
<form id="intermediate" name="inputMachine" method="post"> <select id="selectDuration" name="selectDuration" multiple="multiple"> <option value="1 WEEK" >Last 1 Week</option> <option value="2 WEEK" >Last 2 Week </option> <option value="3 WEEK" >Last 3 Week</option> </select> <?php //include '../db/interface/DB_Manager.php'; $connect = mysql_connect("localhost", "root", "infinit") or die(mysql_error()); mysql_select_db("serverapp") or die(mysql_error()); $query = "select id,name from rpt_shift_def"; //Write a query $data = mysql_query($query); //Execute the query ?> <select id="selectShift" name="selectShift" multiple="multiple"> <?php while($fetch_options = mysql_fetch_array($data)) { //Loop all the options retrieved from the query ?> <option name="selected_ids[]" id ="<?php echo $fetch_options['id']; ?>" value="<?php echo $fetch_options['name']; ?>"><?php echo $fetch_options['name']; ?></option><!--Echo out options--> <?php } ?> </select>
Здесь я заполняю выпадающее меню Shift в раскрывающемся списке Multiselect. Если я выбираю более одной смены, я не смог получить все эти выбранные значения в php. вместо этого я получаю только последнее выбранное значение.
Я хочу сделать что-то подобное.
$shiftarraycalc = array(); foreach ($_POST['selectShift'] as $key => $value) { array_push($shiftarraycalc,$value); }
но он не работает.
Я не знаю, как получить несколько значений в $ _POST.
Модифицированное имя как массив в select
<select id="selectShift" name="selectShift[]" multiple="multiple">
и сделал это, и это работает
$shiftarraycalc = array(); $shift=$_POST['selectShift']; if ($shift) { foreach ($shift as $value) { array_push($shiftarraycalc,$value); } }
Вы тоже могли бы это сделать.
<form action="ResultsDulith.php" id="intermediate" name="inputMachine[]" multiple="multiple" method="post"> <select id="selectDuration" name="selectDuration[]" multiple="multiple"> <option value="1 WEEK" >Last 1 Week</option> <option value="2 WEEK" >Last 2 Week </option> <option value="3 WEEK" >Last 3 Week</option> <option value="4 WEEK" >Last 4 Week</option> <option value="5 WEEK" >Last 5 Week</option> <option value="6 WEEK" >Last 6 Week</option> </select> <input type="submit"/> </form>
Затем возьмите несколько вариантов из следующего кода PHP ниже. Он печатает выбранные несколько значений соответственно.
$shift=$_POST['selectDuration']; print_r($shift);
<select id="hanu" name="hanu[]" multiple="multiple"> <option> one</option> <option> two </option> <option> three</option> <option> four </option> <option> five</option> <option> six </option> <option> seven</option> </select>`
И PHP-код для этого
$res_hanu = array(); $hanu_new=$_POST['hanu']; if ($hanu_new){ foreach ($hanu_new as $value){ array_push($res_hanu,$value); } }
$shift=$_POST['selectShift']; if ($shift) { foreach ($shift as $value) { $shiftarraycalc[]=$value; } }