Hallo Mede-PHP vrienden,

Ik ben voor een kennis bezig met een apply formulier voor een spel dat hij speelt. Nu heb ik alles wel aardig onder controle.

Alleen ik kan er maar niet over uit dat ik de waardes van mijn 2 dropdownmenu menu`s die ik vul aan de hand van een selectie gemaakt in het eerste dropdownmenu. Ik heb op internet gezocht maar nochtans niet mijn antwoord gevonden.

Ik hoop dat jullie mij kunnen helpen met het volgende

Ik heb een apply.php bestand

Met de ajax code


<script type="text/javascript">
function showUser(str)
{
if(str=="")
  {
	document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
		}
 }
	xmlhttp.open("POST","specs.php?q="+str,true);
	xmlhttp.send();
}
</script>
En stukje HTML wat bij de ajax code hoort
 <td valign="top"><p>
      <select name="class" class="tekstfield" onchange="showUser(this.value)" id="class">
        <option value="">Kies je Class:</option>
        <option value="Death Knight">Death Knight</option>
        <option value="Druid">Druid</option>
        <option value="Hunter">Hunter</option>
        <option value="Mage">Mage</option>
        <option value="Paladin">Paladin</option>
        <option value="Priest">Priest</option>
        <option value="Rogue">Rogue</option>
        <option value="Shaman">Shaman</option>
        <option value="Warlock">Warlock</option>
        <option value="Warrior">Warrior</option>
        </select>
    </p>
      <div class="specsize" id="txtHint"></div></td>
    </tr>

En de code uit specs.php is als volgt

<?php 
#echo "<Pre>";
#print_r($_POST);
#print_r($_SESSION);
#error_reporting(E_ALL); ini_set('display_errors',1); 
?>

<?php

$q	=	$_GET["q"];

$con = mysql_connect('localhost', '', '');
if (!$con)
  {
	  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("", $con);

$sql	=	"SELECT * FROM charsetups WHERE class = '".$q."'";

$result = mysql_query($sql);



while($row = mysql_fetch_array($result))
  {
	  
?>
<form name="form1" method="post" action="">
       <p>
         <label for="ms"></label>
         <select name="ms" class="tekstfield" id="ms">
           <option>Kies je Main Spec</option>
           <option><?php echo $row['spec1'] ?></option>
           <option><?php echo $row['spec2'] ?></option>
           <option><?php echo $row['spec3'] ?></option>
           <option><?php echo $row['spec4'] ?></option>
           <option><?php echo $row['spec5'] ?></option>
         </select>
         <select name="os" class="tekstfield" id="os">
           <option>Kies je Off Spec</option>
           <option><?php echo $row['spec1'] ?></option>
           <option><?php echo $row['spec2'] ?></option>
           <option><?php echo $row['spec3'] ?></option>
           <option><?php echo $row['spec4'] ?></option>
           <option><?php echo $row['spec5'] ?></option>
         </select>

</form>

<?  
	}
mysql_close($con);
?> 

Volgens mij is dit alle code waar het om gaat. Ik hoop dat het verder wel helder genoeg is.

Alleen als ik het hele form invul en verstuur werkt alles, behalve de 2 dropdown menu`s, die blijven leeg. Ik weet niet zeker waarom dat is (ben ook nog niet zo heel goed in php en mysql en ajax ben ik eigenlijk niet bekend mee, behalve dan wat dingen die ik op internet lees/gelezen heb).

Ik heb geprobeerd om de 2 dropdownmenu menu`s in specs.php in sessies te zetten, maar omdat (denk ik) de apply.php al geladen is en daarna pas de specs.php aangeroepen word heb ik geen succes daar mee geboekt.

Ik zou het erg tof vinden als iemand me kan helpen met dit probleem. Als je meer informatie nodig heb om beter te kunnen bepalen wat er aan de hand zou kunnen zijn hoor ik dat graag

MvG

Dennis van Ginkel

- Aar - op 28/07/2011 15:34:12


Zie de link voor de gehele code: http://pastebin.com/hJ1B2zT8

We zien liever relevante code op dit forum.


Sorry Aar, Ik heb het aangepast en de relevante code in me eerste post geplaatst.

groetjes,

Dennis

[size=xsmall]Toevoeging op 28/07/2011 16:05:51:[/size]

Beste Php mensen,

Ik heb het werkend :-D ik had de inhoud van die specs.php in een <form> staan en daarom pakte de apply.php het geheel niet. Ik heb de <form> tags uit specs.php gehaald en nu weer getest en nu werkt het wel :-D

MvG

Dennis van Ginkel
Mooi zo, kan je jouw code ook even tussen [code] en [/code]-tags plaatsen? Dan is het geheel even wat leesbaarder.

Reageren