variabele meesturen naar dynamische select

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marco V

Marco V

30/11/2010 12:26:36
Quote Anchor link
Hi allen,

Ik heb een dynamische selectbox en vraag me af of en zo ja hoe, ik een variabele kan meesturen naar de resultaten in de selectbox zodat ik een waarde in de selectie als "selected" kan markeren!?

ik gebruik deze functie en heb geprobeerde de variable "zoekwaarde" mee te sturen, maar dit werkt dus niet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
<script type="text/javascript">
function
showArtikelSoorten(str,zoekwaarde)
{

if (str=="")
  {

  document.getElementById("txtSoort").innerHTML="";
  return;
  }

if (window.XMLHttpRequest)
  {
// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }

else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

xmlhttp.onreadystatechange=function()
  {

  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {

    document.getElementById("txtSoort").innerHTML=xmlhttp.responseText;
    }
  }

xmlhttp.open("GET","soort.php?groep="+str,"&zoekwaarde="+zoekwaarde,true);
xmlhttp.send();
}

</script>

?>


dit staat in mijn formulier:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// de selectbox "GROEP" maakt een dynamische selectbox met het onclick event
// de waarde van $ARTIKEL['SOORT'] wil ik meesturen als "selected"


<select name="ARTIKEL[GROEP]" id="ARTIKEL[GROEP]" onclick="showArtikelSoorten(this.value,<?php echo $ARTIKEL['SOORT']; ?>)">

// de selectbox "SOORT" wordt gegenereerd door de functie
<div id="txtSoort">Selecteer Artikelgroep</div>
?>


het script dat ik hiervoor gebruik (soort.php):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
$groep
=$_GET['groep'];
$zoekwaarde=$_GET['zoekwaarde'];

// de query voor de selectbox
$sql="SELECT * FROM ARTIKELSOORTEN WHERE GROEPID = '".mysql_real_escape_string($groep)."' ORDER BY NAAM";

$result = mysql_query($sql);

echo '<select name="ARTIKEL[SOORT]" id="ARTIKEL[SOORT]" >';
echo '<option value="">selecteer</option>';

while($row = mysql_fetch_array($result)) {
    
    if ($row['BLOCK'] == "J") {
        $disabled = 'disabled="disabled"';
    }
else {
        $disabled = NULL;
    }

    
    if ($row['ID'] == $zoekwaarde) {
        $selected = 'selected="selected"';
    }
else {
        $selected = NULL;
    }

    
    echo '<option value="';
    echo $row['ID'];
    echo '" '.$disabled.' '.$selected.' >';
    echo $row['NAAM'];
    echo '</option>';
}

    
echo '</select>';
?>


Toevoeging op 30/11/2010 16:04:28:

ik heb een oplossing gevonden door de functie aan te passen en roep de functie (javascript) aan zodra er een zoekwaarde is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// als er een zoekwaarde is, doe de javascript functie met deze waarde
if (isset($zoekwaarde)) { echo "<script>showArtikelSoorten(".$zoekwaarde.");</script>"; }
?>


Hierbij de aangepaste (werkende) functie:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
<script type="text/javascript">
function
showArtikelSoorten(str)
{

if (str=="")
  {

  document.getElementById("txtSoort").innerHTML="";
  return;
  }

if (window.XMLHttpRequest)
  {
// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }

else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

xmlhttp.onreadystatechange=function()
  {

  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {

    document.getElementById("txtSoort").innerHTML=xmlhttp.responseText;
    }
  }

xmlhttp.open("GET","soort.php?zoekwaarde=<?php echo $ARTIKEL['SOORT']; ?>&groep="+str,true);
xmlhttp.send();
}

</script>

?>


Kortom, opgelost!
Gewijzigd op 30/11/2010 16:42:33 door Marco V
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.