Dit gaat hier over een dropdown die velden laat verschijnen afhankelijk van de keuze van de dropdown.
Dit werkt perfect als je de waarde nog moet kiezen maar niet als ze al gekozen is zoals hieronder. Dit betreft een aanpaspagina van eerder ingevulde gegevens.

De dropdown:

$sql = "SELECT * FROM accountics WHERE id = '$id'";
$res = mysql_query($sql) or die (mysql_error());
				   
while($row = mysql_fetch_assoc($res)) {


<div class="col-sm-10">
  <select name="categorie" class="form-control" id="selectMe">
	<option selected value="<?php echo $row['categorie']; ?>"><?php echo $row['categorie']; ?></option>
                                        
         <?php                           
		 $sql1 = "SELECT distinct naam FROM lijst_accountics_categorie";
		 $res1 = mysql_query($sql1) or die (mysql_error());

                 while($row = mysql_fetch_assoc($res1)) { 
         ?>                           
                                        
         <option value="<?php echo $row['naam']; ?>"><?php echo $row['naam']; ?></option>
                                        
         <?php 
         }
		 
	 $sql = "SELECT * FROM accountics WHERE id = '$id'";
	 $res = mysql_query($sql) or die (mysql_error());
				   
         while($row = mysql_fetch_assoc($res)) { 
		 
	 ?>                               
                                        
  </select>
</div>


Daaronder komen de div's die moeten opgeroepen worden afhankelijk van de selectie uit de dropdown.

<!-- Start restaurant -->
<div id="Restaurant" class="group">
                                
  <div class="col-sm-10">
     <input type="text" name="bedrag1_excl" class="form-control" id="field-1" value="<?php echo $row['bedrag1_excl']; ?>">
  </div>

</div>


<!-- Start als categorie niet gelijk is aan Restaurant -->
<div id="Geen" class="group">
                                
   <div class="col-sm-10">
       <input type="text" name="bedrag_excl" class="form-control" id="field-1" value="<?php echo $row['bedrag_excl']; ?>">
   </div>
</div>

</div>


Hieronder hebben we de javascript die daarbij hoort. Denk dat hier wel nog enkele wijzigingen zullen aan moeten gebeuren om dit goed werkende te krijgen. Verder uitleg staat onder de javascript code.
De waarde 'Geen' betreft alles wat niet als restaurant is geselecteerd.

<script>
$(document).ready(function () {
  $('.group').hide();
  $('#Geen').show();
  
  $('#selectMe').change(function () {
    $('.group').hide();
    
var Restaurant = document.getElementById("selectMe").value;	

if(Restaurant === 'Restaurant') {
	$('#Restaurant').show();
} else {
	$('#Geen').show();
}	

  })
});
</script>


Als ik die aanpaspagina refresh staan de waarden uit de database in de dropdown wel juist ingevuld maar de velden die overeen komen met de geselecteerde waarde houden geen rekening met de javascript. Dus ze komen niet naar boven. Wat is er aan mijn javascript fout?
Ik heb in mijn vorige reactie geaccentueerd waar het om gaat .......
Ik heb de oplossing gevonden. Ik had de post van Peter Flos niet goed begrepen op het eerste zicht maar zijn idee was wel in de goede richting. Ger heeft met zijn opmerking mij terug de juiste richting ingeduwd ;-) Thanks heren voor de hulp!

Even de volledige javascript posten van het uiteindelijke resultaat:

<script>
$(document).ready(function () {
  $('.group').hide();

if($('#selectMe').val() === 'Restaurant') {
    $('#Restaurant').show();
}

else { 
    $('#Geen').show();
}
  
  
  
  $('#selectMe').change(function () {
    $('.group').hide();


if($('#selectMe').val() === 'Restaurant') {
    $('#Restaurant').show();
}

else {  
    $('#Geen').show();
}


  })
});
</script> 

Nu ga ik mij bezig houden met een paar varianten op dit script. Want heb er nog zo een paar staan met velden die moeten verdwijnen/verschijnen maar met andere waarden.
Ja maar, je gaat toch niet telkens code herhalen.
Met .change hang je een eventListener aan een element, met .trigger('change') trigger je dat event, en wordt hetgeen binnen de eventListener staat uitgevoerd.
Dat zal ik eens uittesten straks, Ger. Ik hou je op de hoogte.
@Ger: ik heb geprobeerd iets te doen met jouw voorstel maar dat is mij dus niet gelukt. Ik heb beetje vanalles zitten proberen maar werkte niet. Kan je mij beetje helpen?
Ik zou niet weten hoe, 'maar werkte niet' zegt mij helemaal niets.
Los van dit alles, het is 2015 mensen. De mysql-extensie is vanaf PHP 5.5.0 deprecated.

Wordt het niet eens tijd (en vooral wanneer je nieuwe code aan het schrijven bent) dat je gebruik gaat maken van ofwel mysqli ofwel PDO om met je MySQL-database te communiceren?

Al vanaf MySQL versie 4.1.3 (die circa 10 jaar geleden werd geintroduceerd) was het al mogelijk (en werd je aangemoedigd) om afscheid te nemen van de mysql_ functies.

Reageren