Archief - AJAX: Probleem met selectieboxes

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Sprits

Legacy Member
guilds.php
PHP:
<?php
	include("../config.php");
	$server = $_GET["server"];
	$guilds = "";
	
	if ($server != "0") {
		// get guildnames
		$query = mysql_query("SELECT * FROM guild WHERE serverid LIKE '" .$server. "'") or die(mysql_error());
		while ($res = mysql_fetch_array($query)) {
			$guilds = "<option value=\"".$res["guildid"]."\">".$res["guildname"]."</option> \n" . $guilds;
		}
		//$guild = "<select id=\"field9\" name=\"field9\" class=\"required validate-selection\" title=\"Kies uw guild\" onchange\"showGuild(this.value)\"><option>- Guild -</option><option value=\"addguild\">Guild toevoegen</option>" . $guilds . "</select>";
		echo $guilds;
	}
	else {	
		echo "<option>- Guild -</option>";
	}
?>

guilds.js
Code:
function showGuilds(str)
{ 
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 } 
var url="addchar/guilds.php"
url=url+"?server="+str
xmlHttp.onreadystatechange=guildstateChanged 
xmlHttp.open("POST",url,true)
xmlHttp.send(null)
}

function guildstateChanged() 
{ 
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 document.getElementById("field9").innerHTML=xmlHttp.responseText 
 } 
}function GetXmlHttpObject()
{
var xmlHttp=null;try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

add.php (select code)
HTML:
<div class="form-row">
	<div class="field-label"><label for="field9">Guild</label>:</div>
	<div class="field-widget">
                 <select id="field9" name="field9" class="required validate-selection" title="Kies uw guild" onchange="showAddGuild(this.value)"><option>- Guild -</option></select>
	</div>
      </div>

als ik manueel naar http://www.nibby.be/test/addchar/guilds.php?server=1 dan komt er gewoon de tekst op! als ik in de source code ga zien kom ik op <option>guildwhatever</option>

nu op http://www.nibby.be/test/addchar.php wordt deze niet in de select box gezet! (kies Agamaggan (1ste server)) en je zal zien dat de select box niet wordt opgevuld...
is er iemand die weet wat de fout is en waar het fout gaat?

kben nog ni zolang bezig met ajax! de bedoeling is dus om gewoon de select box op te vullen met data uit de database.

Smoerf

Legacy Member
Code:
var url="addchar/guilds.php"
url=url+"?server="+str
xmlHttp.onreadystatechange=guildstateChanged 
xmlHttp.open("POST",url,true)

post requests werken niet zo, wat jij meegeeft is een get variable, dus mss "GET" meegeven.

De fout zal zoiezo niet daaraan liggen. Ik check even je link...

Ok, bij mij plaatst hij het wel in je select box (firefox) maar geeft hij wel volgende error:

fabtabulous line 14
this.element has no properties
initialize("tabs")fabtabulous.js (line 14)
create()prototype.js (line 23)
(no name)()fabtabulous.js (line 50)
[Break on this error] this.menu = $A(this.element.getElementsByTagName('a'));

Je ajax request:
params:
server = 1

headers
Response Headers
Date Thu, 28 Jun 2007 13:27:06 GMT
X-Powered-By PHP/4.3.8
Content-Length 39
Connection close
Content-Type text/html

Request Headers
Host www.nibby.be
User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Accept text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language nl,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Referer http://www.nibby.be/test/addchar.php
Pragma no-cache
Cache-Control no-cache

Post
niets, wat normaal is want je doet een get

Response
<option value="1">Testguild</option>

Sprits

Legacy Member
ok, kheb die POST veranderd naar GET...
fabtabulous zou ook moeten opgelost zijn...

en inderdaad in Firefox werkt het wel maar in IE 7.0 niet!
heb je mss een idee waarom niet?

Smoerf

Legacy Member
innerHTML ergens?

Edit:

mss die (if $server == "0") opvangen in je javascript, das al een request gespaard.
Btw, wat gebeurt er als je in quirksmode rendert?

Op sommige plaatsen zou je mss wel beter optgroups gebruiken, zoals hier
Code:
<option class="horde" value="0">Horde</option>
<option value="1">Blood Elves</option>
....

kan je beter dit doen
Code:
<optgroup label= "Horde">
<option value="1">Blood Elves</option>
....
</optgroup>
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan