Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[AJAX / IE / PHP] Probleem met <select> waarde

Pagina: 1
Acties:
  • 153 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hey,

ik zit vandaag echt met een zeer vreemd probleem, dus ik hoopte dat iemand me kon helpen.
ik heb op een website een domain search opgezet (gebaseerd op Mwhois) en kom in de knel te zitten met de ajax calls.

Even wat verduidelijking voordat ik uitleg wat het probleem is:

Op de home pagina zit een zoekbalk waarin je een domein in kan voeren en uit een dropdownlist de extensie.

door middel van een compacte ajax functie wordt deze info doorgepost naar een container div in het midden van de pagina(content area). De functie is steeds opgebouws uit 3 elementen:

code:
1
ajaxfunctie(bronpagina, 'doelcontainer', 'post parameters');


Dit werkt perfect en stelt mij in staat om met een enkele klik meerdere div elementen te manipuleren.

Nadat de eerste manipulatie/zoekactie is voltooid kom ik, in de content area zelf, al op zoekresultaten terecht en kan ik vanuit daar steeds een bewerking uitvoeren die ook allemaal weer in die zelfde div in de content area terechtkomen.

(dus als het domein bezet is kan ik m vanaf daar whoissen of teruggaan naar een zoekpagina BINNEN de content area).

Alles werkt in principe perfect in firefox totdat ik een zoekfunctie vanuit de content area wil uitvoeren met IE...

ik doe een ajaxcall die 2 variabelen vanuit twee <input> elementen haalt, namelijk:

code:
1
2
3
4
5
<input type="text" id="search_domain" name="domain">
<select id="search_domain_ext" name="ext">  
 *** NB DEZE <SELECT> LIJST WORDT DOOR PHP GEGENEREERD! ***
<option>....</option>
</select>


nu is de bedoeling dat als ik daarna de verzendknop indruk, deze (net zoals op de home zoekfunctie)
het domein en de gekozen extensie POST naar het verwerkingsscript en de resultaten plaatst op de content area.

code voor de ajax call is als volgt:

code:
1
"ajaxpage('includes/mwhois/mwhois.php','main_content_content','domain='+document.getElementById('search_domain').value+'&ext='+document.getElementById('search_domain_ext').value)


dit gaat in firefox zonder enig probleem.
in IE echter, komt er geen waarde na &ext=
ik heb de code zelfs voor debugging vervangen om te kijken welke waarde ze hadden:
code:
1
2
alert('domain='+document.getElementById('search_domain').value);
alert('ext='+document.getElementById('search_domain_ext').value);


dit geeft in het eerste geval gewoon "domain=(wat ik heb ingevoerd)"
maar bij de tweede geeft hij dus "ext=" meer niet.

in firefox geeft hij echter wel beiden...

ik kan helaas niet de gegenereerde html uit de php pagina geven omdat ik nog geen manier heb gevonden om de sourcode van een ajax pagina uit een div te halen maar mocht het nodig zijn dan zal ik het betreffende stuk alsnog posten.

Heb trouwens ook geprobeerd om de call vanaf een ander werkend gedeelte van de site te copy+pasten, en het blijft dan hetzelfde... en aangezien het werkt in firefox gaat mijn vermoeden in ieder geval niet richting typing errors.

Iemand een idee? Ik hoor het graag :)

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Gezien het in FF wel werkt is het waarschijnlijk een javascript probleem.

Wat gebeurt er als je dit doet:

JavaScript:
1
2
var dropdown = document.getElementById('search_domain_ext');
alert('ext='+dropdown.options[dropdown.selectedIndex]);


En met "typing errors" bedoel je vast typos ("typing errors" kan door sommigen anders opgevat worden dan jij bedoeld ;))

[ Voor 19% gewijzigd door Face_-_LeSS op 11-12-2007 20:07 ]


Verwijderd

Voor zover ik weet is het in IE7 zo dat de name en het ID van een formulier gelijk moeten zijn, anders kan je hem niet bereiken met de getElementById methode.

Werkt het op IE6 wel?

[ Voor 7% gewijzigd door Verwijderd op 11-12-2007 20:09 ]


Verwijderd

Topicstarter
Bedankt voor de reacties :)

hij wordt dan teruggestuurd als object. Ik heb echter wel ontdekt waar het aan ligt inmiddels (zit er al de hele dag mee, zie je maar net dat je er achterkomt nadat je het op tweakers post :s)

Het zat m in de door PHP gegenereerde dropdown.
Mwhois doet dit dmv <option>iets</option>

FF neemt dan bij gebrek aan een <option value="iets"> de string tussen <option> en </option>
als value.

IE doet dat dus niet.... echter is het script zo opgebouwd dat ik niet echt begrijp hoe ze de lijst zelf opbouwen (dmv implodes e.d. en stringreplacements) dus voor mij is de oplossing nagenoeg het static maken van de lijst, dan weet ik zeker dat de value expliciet is meegegeven.

Een bug in mwhois blijkbaar....

@ACAB
dit is hier niet van toepassing want doordat ik gebruik maak van ajax heb ik helemaal geen enkele <form> op de site.

[ Voor 9% gewijzigd door Verwijderd op 11-12-2007 20:13 ]