Javascript:自动选择select-box multiple的所有选项都不起作用

时间:2016-07-21 05:58:30

标签: javascript php forms

在尝试使用POST提交表单之前,我尝试使用javascript自动选择选择框的所有选项。当用户选择框中的所有元素时,元素将通过POST发送。但我不希望用户每次都这样做,这就是我想用脚本自动完成的原因。

这里是表格:(选择框在开头没有选项)

<form action="insert.php" method="post" id ="myForm"> 

    ...

 <select name="bestellung[]" id="myList" size="9" multiple>

 </select>

 <button type="button" id="".$this->pizzaName."" data-preis="".$this->preis."" onclick="im_korb('".$this->pizzaName."');"></button>


<div>

  <table>

    <tr>
       <td> <label for="name">Name :</label> </td>
       <td> <input type="text" name="name" id="name" placeholder=" Ihr Name" 
           size="40" required/> </td>
    </tr>

    <tr>
       <td> <label for="adresse">Lieferadresse :</label> </td>
       <td> <input type="text" name="adresse" id="adresse" placeholder=" Ihre Adresse" 
           size="40" required/> </td>
    </tr>

  </table>

</div>

  ...

   <div id="button3">
     <input type="submit" value="Bestellen">
   </div>

</form>

然后我使用此脚本在选择框中添加许多选项:

function im_korb(pizza){       

 var selectList = document.getElementById("myList");
 var Button = document.getElementById(pizza);

 var newOption = document.createElement('option');
     newOption.text = pizza.toString();
     newOption.value = pizza.toString();     

 selectList.add(newOption);

}

然后我使用这个脚本提交表单:(但当用户不自己选择时,它仍然没有发送元素)

$(document).ready(function() {

$('#myForm').on('submit', function() {

    /* Here I try to select all the options of the selectbox
       before sending the elements with POST, but it is not working*/

    var selectList = document.getElementById("myList");

    for (var i=0; i< selectList.options.length; i++) {

     // should select all the options but it is not working
      selectList.options[i].selected = true; 

    }       

    var name = $('#name').val();
    var adresse = $('#adresse').val();
    var bestellung = $('#myList').val();

    $.post( "insert.php", {name: name, adresse: adresse , bestellung: bestellung}, function(data){ 

        alert('Erfolgreiche Bestellung');

    });

    document.getElementById("name").value='';
    document.getElementById("adresse").value='';    
    document.getElementById("myList").options.length = 0;   

    return false; 
}); });

这是页面的一部分&#34; insert.php&#34;谁收到POST发送的元素:

foreach ( sanitize($_POST['bestellung']) as $pizza)
        {
            $query = "INSERT INTO bestelltePizza(fBestellungID, fPizzaName, Status) VALUES ('$idLezteBestellung', '$pizza','bestellt')";
            $database->query($query);
        }

当用户未选择选项时,不会使用POST发送任何内容。但是我尝试在发送它们之前自动选择它们。

请帮助。

0 个答案:

没有答案