Avatar billede bongii Nybegynder
30. september 2008 - 14:37 Der er 15 kommentarer og
1 løsning

Flere bokse (ajax script)

Hej.

Jeg har lavet et script der går ind og henter en bruger fra en database on the fly.

http://www.movievizion.dk/upload/ajaxtest/

Problemet er, at jeg kunne godt tænke mig at have måske 5 rækker med nummer: navn: osv.

Jeg kan sgu ikke få det til at virke :( F.eks:
<form name="clientForm" method="post">   
<table>
<tr>
<td>ID</td>
<td><input name="ClientImput1" id="ClientImput1" size="15">&nbsp;<input name="firstname1" id="firstname1" size="20" maxlength="255"></td>
</tr>
<tr>
<td>ID</td>
<td><input name="ClientImput2" id="ClientImput2" size="15">&nbsp;<input name="firstname2" id="firstname2" size="20" maxlength="255"></td>
</tr>
</table>   
</form>
Avatar billede w13 Novice
30. september 2008 - 17:01 #1
Hvad er det, der ikke virker?
Avatar billede bongii Nybegynder
30. september 2008 - 17:57 #2
Det virker fint nok, vil godt have javascripten gjort en smule mere dynamisk så jeg kan have f.eks. 5 rækker hvor den laver "tricket".
Avatar billede w13 Novice
30. september 2008 - 18:17 #3
Hvordan ser JS-delen så ud?
Avatar billede olebole Juniormester
30. september 2008 - 20:50 #4
<ole>

Jeg kan se, du returnerer dette:
    formObj.firstname.value = 'Jesper'; formObj.test.value = 'Christensen';

Returner i stedet data i JSON-format. Udskriv:
    {"persons": [{"first":"Jesper", "last":"Cristensen"}, {"first":"Lise", "last":"Larsen"}]}

Så kan du:

var oResp = eval("(" + ajax.response + ")");
document.getElementById("firstname1").value = oResp.persons[0].first;
document.getElementById("lastname1").value = oResp.persons[0].last;

document.getElementById("firstname2").value = oResp.persons[1].first;
document.getElementById("lastname2").value = oResp.persons[1].last;

/mvh
</bole>
Avatar billede bongii Nybegynder
01. oktober 2008 - 18:29 #5
Det er tæt på Ole, jeg kan dog ikke gennemskue hvordan jeg kan seperere dem...

Boksene skal vises på en side. Det er ikke forudbestemt hvor mange rækker der skal være på siden og når brugeren skriver nummeret i "nummer 2", er det kun "nummer2" feltet der skal opdateres.  JEg ved ikke hvordan jeg skal få fortalt scriptet at det kun er nummer2 feltet der sakl opdateres.

http://www.movievizion.dk/upload/ajaxtestNY/
Avatar billede roenving Novice
02. oktober 2008 - 13:20 #6
Du har samme id på flere forskellige elementer, det må du ikke have (gerne samme navn, men et id _skal_ være unikt !-)

-- og så skal du jo sætte evant-handler på 3 elementer i dit eksempel, du gør det jo kun på een ...

-- jeg gider ikke lave en tutorial her om at hooke events, men et rimeligt forsimplet eksempel kunne være:

function initFormEvents(){
  var inps = document.getElementByName("ClientImput");
  for(i=0,im=inps.length;im>i;i++){
    inps[i].onblur = function(){getClientData(this);};
  inps[0].focus();
}

-- og så skal dine andre funktioner sikkert også bygges noget om, men dette var bare en start, så du selv kan komme videre !-)
Avatar billede bongii Nybegynder
02. oktober 2008 - 15:33 #7
Jeg kan sgu ikke rigtig få det til at virke :(

Tænkte på om det måske var lettere at tage udg. punkt i det første link jeg sendte og så bruge windowonload til at definere de forskellige:
window.onload = initFormEvents('ClientImput1'); initFormEvents('ClientImput2');

Kan man så på en måde sende id nummeret med rundt i scriptet så det ender med:
ajax.requestFile = 'getuser.asp?ID=[ID NUMMER]&getClientImput='+ClientImput;

Hvis det kan lade sig gøre, er det jo let at tilføje data til det rigtige felt:
formObj.[ID NUMMER].value = '';

Når jeg prøver f.eks: window.onload = initFormEvents('ClientImput1'); får jeg denne
Fejl: document.getElementById("ClientImput") is null


Kan i Javascript folk gennemskue det?
Avatar billede olebole Juniormester
02. oktober 2008 - 15:40 #8
Ja, men jeg tror, du er ude, hvor du ikke kan svømme - og vist også ret langt forbi stedet  =)

Enten tror jeg, du skal flytte spørgsmålet til kategorien 'Opgaver' eller sætte dig ind i grundlæggende JavaScripting
Avatar billede bongii Nybegynder
02. oktober 2008 - 15:55 #9
hehe tror også jeg har rodet mig ud i noget bøvl.
Avatar billede bongii Nybegynder
03. oktober 2008 - 13:07 #10
Lad os bare lukke den her...
Avatar billede bongii Nybegynder
03. oktober 2008 - 15:34 #11
Fandt ud af det.

<input name="ClientImput" id="ClientImput" onblur="getClientData(this.id)">
Avatar billede w13 Novice
03. oktober 2008 - 20:38 #12
Så husk at oprette et svar og acceptere det. =)
Avatar billede bongii Nybegynder
04. oktober 2008 - 08:09 #13
kan olebole eller roenving ikke gøre det. deres svar hjalp til opklaringen :)
Avatar billede olebole Juniormester
04. oktober 2008 - 15:45 #14
Jamen, så lægger jeg da et svar  =)
Avatar billede bongii Nybegynder
05. oktober 2008 - 12:12 #15
:)
Avatar billede olebole Juniormester
05. oktober 2008 - 18:15 #16
Tak for points  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester