2012-11-28 9 views
-1

J'ai actuellement une boîte de sélection auto remplissage en fonction de l'option que vous sélectionnez dans la première boîte de sélection. Tout cela fonctionne bien et fait le travail. Ce que j'essaye de réaliser est quand le formulaire est soumis il retient les valeurs choisies. Je peux obtenir ce travail pour la première boîte de sélection initiale, mais quand il s'agit de la deuxième boîte de sélection (celle chargée automatiquement) je ne peux pas sembler le faire fonctionner.remplir une boîte de sélection avec javascript

Le premier identifiant de boîte de sélection est ctlJob avec les informations statiques, et le second a un identifiant de ctlPerson.

Voici mon HTML:

<form id="homesearch" action="view.php" method="get"> 
    <label for="ctlJob"></label> 
    <select name="id" id="ctlJob" style="clear:both; float:left;"> 

<option value="0">Please Select...</option>  


<option <?php if ($_GET['id'] == '1') { ?>selected="true" <?php }; ?>value="1">Regional General Manager</option> 
<option <?php if ($_GET['id'] == '2') { ?>selected="true" <?php }; ?>value="2">General Manager</option> 
<option <?php if ($_GET['id'] == '3') { ?>selected="true" <?php }; ?>value="3">Deputy General Manager</option> 
<option <?php if ($_GET['id'] == '4') { ?>selected="true" <?php }; ?>value="4">Operations Manager</option> 
<option <?php if ($_GET['id'] == '5') { ?>selected="true" <?php }; ?>value="5">Shift Manager</option> 
<option <?php if ($_GET['id'] == '6') { ?>selected="true" <?php }; ?>value="6">First Line Manager</option> 
<option <?php if ($_GET['id'] == '7') { ?>selected="true" <?php }; ?>value="7">Stock Controller</option> 


    <noscript> 
    <input type="submit" name="action" value="Load Individuals" /> 
    </noscript> 

    <select name="person_id" id="ctlPerson" style="clear:both; float:left;"> 

    </select> 
<input id="submit" type="submit" name="action" value="search" style="margin-top:40px;" /> 
</form> 

Voici mon js:

<script type="text/javascript"> 
    document.getElementById('id').value = "<?php echo $_GET['id'];?>"; 
    document.getElementById('person_id').value = "<?php echo $_GET['person_id'];?>"; 
</script> 

Toutes les idées sur la façon dont je peux obtenir la boîte de sélection de secondry pour rester renseigné avec l'option sélectionnée une fois le formulaire été soumis à lui-même?

Merci, Dan

désolé d'avoir manqué cette js sur:

<script type="text/javascript" charset="utf-8"> 
$(function(){ 
$("select#ctlJob").change(function(){ 
    $.getJSON("view.php",{id: $(this).val(), ajax: 'true'}, function(data){ 
     var $persons = $("#ctlPerson").empty(); 
     $.each(data, function() { 
     $persons.append("<option value=" + this.optionValue + ">" + this.optionDisplay + "</option>"); 
     }); 
    }) 
    }); 
}) 
</script> 

Répondre

0

Quel que soit le code que vous utilisez pour le remplir (probablement un gestionnaire d'événements change), il suffit d'appeler sur chargement de la page. Je fais des trucs comme ça avec ce genre de code:

(elem.onsomething = function() { 
    // some event-handling code 
}).call(elem); 
+0

désolé que je viens posté le js qui renseigne le selectbox – danyo

+0

Eh bien, assigner la fonction à une variable, puis appelez '$ (« select # ctlJob »). changer (myfunc); myfunc.call (document.getElementById ('ctlJob'); ' –

Questions connexes