[HTML/AJAX] innerhtml data niet postbaar in firefox

Pagina: 1
Acties:

  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
Dag tweakers :)

Heb een vaag probleem aan de hand ivm ajax en firefox.
Ben een form aan het samenstellen die wordt uitgebreid door ajax requests die extra informatie telkens toevoegen onderaan de form in divjes (ajax vraagt extra html en formelementen op en voegt ze toe in de form).

Nu kan ik deze toegevoegde elementen helaas niet benaderen onder firefox.
Zowel na de post, als voor de post via javascript

In IE gaat het wel, maar firefox niet.

Na wat zoeken heb ik zo'n vermoeden dat het te maken heeft met DOM, maar hoe kan ik dit best oplossen...

Alvast bedankt

ProtocoLAN.be: De beste LAN van de Maaskant


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:28

crisp

Devver

Pixelated

(online) voorbeeldje? Zo is het een beetje koffiedik kijken natuurlijk...

Intentionally left blank


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Lukt het ook niet door de .value van form elementen op te vragen?

  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
jah, online voorbeeldje is moeilijk omdat het hier op intranet staat en omdat het php/mysql driven, zal hier gedeelte code posten

gedeelte dat de innerhtml opvult
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function filltaskselect(){                          

    http.open('get', 'gettask.php?type=phone&id=' + document.f1.callid.value + '&loopid=' + newtaskteller);

    http.onreadystatechange = handtaskselect; 

    http.send(null);                            

}



function handtaskselect() {

    if(http.readyState == 4){ //Finished loading the response

        var response = http.responseText;
        document.getElementById(newtaskval).innerHTML = response;

    }

}


dus niks van de inerHTML komt door na post in firefox

ook via deze javascript kan ik geen van de elementen die in de innerhtml en dus onder form f1 zijn geinsert terugvinden :|
code:
1
2
3
4
5
6
7
8
9
    function dovaliend() {
        var txt = '';
        for(i=0; i<document.f1.elements.length; i++){
           txt = txt + document.f1.elements[i].name + "||";
           if(i%10 == 0) txt = txt + "\n";
           
       }
       alert(txt);
    }

ProtocoLAN.be: De beste LAN van de Maaskant


  • André
  • Registratie: Maart 2002
  • Laatst online: 14:48

André

Analytics dude

Die newtaskval is een variabele met daarin het id van een div ofzo?
Het kan zijn dat door je toevoeging met innerHTML de elements collection niet wordt bijgewerkt, heb je dat al gechecked?

  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
jah, sry, in die newtaskval zit idd de naam van de div

de innerhtml wordt zonder problemen getoond ed, 't is gewoon dat de waardes die er dan inzitten niet via een post van het form worden doorgegeven, of niet aanspreekbaar zijn via javascript

kan ik voor firefox een soort rebuild van de elementtree ofzo doen?

ProtocoLAN.be: De beste LAN van de Maaskant


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 15:22

RM-rf

1 2 3 4 5 7 6 8 9

innerHTML is toch geen manier om de warde van fom-elementen op te vragen?

daarvoor gebruik je gewoon beter
document.forms['formnaam'].elements['elementnaam'].value

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:28

crisp

Devver

Pixelated

Dit werkt toch gewoon, dus ws doe je iets anders fout:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<form action="#">
<input type="button" onclick="formelements(this.form)" value="show form elements"> <input type="submit">
<div id="foo"></div>
</form>
<script type="text/javascript">

document.getElementById('foo').innerHTML = '<input type="text" name="naam"> <input type="text" name="adres">';

function formelements(form)
{
    var el, i = 0;;
    while ((el = form.elements[i++]))
    {
        alert(el.tagName + ' type: ' + el.type + (el.name ? ' name: ' + el.name : ''));
    }
}

</script>

Intentionally left blank


  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
yep, je code werkt inderdaad zonder problemen

Technisch doe ik wel hetzelfde, enkel kan ik alleen de form elelementen voor en na de div die innerhtml ontvangt opvragen

ook als ik enkel een input waarde in de innerhtml pomp...

zou het misschien te maken kunnen hebben met men dtd ofzo?

ProtocoLAN.be: De beste LAN van de Maaskant


  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
Ik kan trouwens wel in javascript via

code:
1
document.getElementsByName....

of
code:
1
document.getElementById....


de naar de innerhtml geschreven objecten terugvinden... (ben ook dus wel niks mee als ik een post wil doen

ProtocoLAN.be: De beste LAN van de Maaskant


  • Blaise
  • Registratie: Juni 2001
  • Niet online
Waarschijnlijk helpt het om de geparste DOM hier te posten.
En heb je je FORM element wel goed geopend/afgesloten?

  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
Zal morgen effe zien wat ik ervan kan posten, niet meer op kantoor meer nu (gelukkig maar)

Zal kijken hoe het best te posten want de source is php met smarty templates ed

Form is trouwens goed geopend en gesloten (was eerste wat ik checkte), en de innerhtml wordt binnen de form tags geinsert

ProtocoLAN.be: De beste LAN van de Maaskant


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 15:22

RM-rf

1 2 3 4 5 7 6 8 9

Xenon schreef op dinsdag 19 september 2006 @ 20:18:

Zal kijken hoe het best te posten want de source is php met smarty templates ed
serverside technieken interesseert hier geen bal (php/jsp/asp, smarty e.d.), als je dus iets post qua source, kijk dan naar de source met view-source... firefox met javascript-konsole en DOM-inspektor wil misschien ook wel veel meer duidelijkheid geven.

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


  • Xenon
  • Registratie: Januari 2001
  • Laatst online: 21-08 09:12
bij deze effe een opvolgingspostje

het probleem is iig opgelost

even
code:
1
2
3
<table ...>
<form ...>
<tr>


vervangen door
code:
1
2
3
<form ...>
<table ...>
<tr>


iig bedankt voor de tips :)

ProtocoLAN.be: De beste LAN van de Maaskant


  • skabouter
  • Registratie: Oktober 2000
  • Laatst online: 26-11 12:49

skabouter

Skabouter

Tipje voor de volgende keer;

gebruik de volgende extenties voor firefox (erg handig voor webdevelopers):

http://chrispederick.com/work/webdeveloper/
http://users.skynet.be/mgueury/mozilla/

Vooral de laatste was in dit geval erg handig geweest!

[ Voor 0% gewijzigd door skabouter op 25-09-2006 15:20 . Reden: typo ]

[ Dislect ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:28

crisp

Devver

Pixelated

Gewoon je HTML valideren was ook voldoende geweest ;)

Intentionally left blank


  • DeepFreeze.NL
  • Registratie: April 2006
  • Laatst online: 02-03 08:01
Xenon schreef op maandag 25 september 2006 @ 13:40:
bij deze effe een opvolgingspostje

het probleem is iig opgelost

even
code:
1
2
3
<table ...>
<form ...>
<tr>


vervangen door
code:
1
2
3
<form ...>
<table ...>
<tr>


iig bedankt voor de tips :)
Damn, Dankje man! Hier was ik nu ook al even naar opzoek! O+
Pagina: 1