JS input felder befüllen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • JS input felder befüllen

    Hallo,

    Ich will bei onchange (select-box) ein input field befüllen, klappt auch super, nur wie kann ich das machen, das gleich mehrere befüllt werden.

    Quellcode

    1. function completeNewGeraet (vorlagenName) {
    2. ajax.onreadystatechange = handlecompleteNewGeraet;
    3. ajax.open("GET", '/login/new.php?vorlage='+vorlagenName, true);
    4. ajax.send(null);
    5. return false;
    6. }
    7. function handlecompleteNewGeraet () {
    8. if ((ajax.readyState == 4) && (ajax.status == 200)) {
    9. document.getElementById('seriennummer').value = ajax.responseText;
    10. }
    11. }
    Alles anzeigen


    Meine PHP-Funktion gibt derzeit nur die Seriennummer zurück, nun soll aber noch Name etc. kommen. Kann man das in einer Funktion machen, oder kann ich direkt sagen, was ich aus dem ajax.responseText will? Was halt super wäre wie wenn man das irgendwie so lösen kann,


    Quellcode

    1. document.getElementById('seriennummer').value = ajax.responseText[0];


    Jedoch ist der responseText kein Array, nun habe ich mir überlegt, das aber der responseText ein Array beinhalten könnte :)

    Nun ist die Frage wenn ich das via einem Array mache wie baue ich das in PHP, so das ich es OHNE porbleme an JS übergeben kann :), oder kennt jemand eine effektivere Methode?
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • So, das klappt nun alles super, aber ein kleines Problem habe ich da noch... im FF funktioniert alles super, aber im IE (7) geht garnichts. Habe das onchange-event in der Form definiert, FF alles super IE macht garnix... Errors gibts keine :( Hat wer eine Ahnung, was man im IE anders machen muss?


    so long
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Nein in der Form :) FF kann das :), aber ok nachdem ich den halben Tag daran gesessen habe, bin ich nun einen Schritt weiter. Es funktioniert nun im IE und im FF, ABER im IE funktioniert das ganze nur einmal. Sprich, wenn ich in der Select-Box 1 auswähle, wird auch was in das Input-Feld geschrieben. Wenn ich dann nochmmal was auswähle, bleibt das Input-Feld unverändert. Ok ob das ein Fortschritt ist, darüber kann man streiten :shock:

    Das ist jetzt ein etwas blödes Problem, hoffe konnte das einigermaßen schildern.

    HTML-Code

    Quellcode

    1. <td>
    2. <select id="vorlage" name="vorlage" onchange="return completeNewGeraet(vorlage.options[vorlage.selectedIndex].value)">
    3. <option value="">Bitte Vorlage w&auml;hlen</option>
    4. <?php
    5. $vorlagen_result =& $db->query("SELECT vorlagenID, geraeteName FROM vorlagen ORDER BY vorlagenID DESC");
    6. while ($vorlagen =& $vorlagen_result->fetchRow()) {
    7. echo "<option value=\"$vorlagen[0]\">$vorlagen[1]</option>";
    8. } ?>
    9. </select>
    10. </td>
    11. </tr>
    12. <tr>
    13. <td>Seriennummer:</td>
    14. <td><input id="seriennummer" name="seriennummer" type="text" value=""/></td>
    Alles anzeigen


    JS-Code

    Quellcode

    1. function completeNewGeraet (vorlagenName) {
    2. ajax.onreadystatechange = handlecompleteNewGeraet;
    3. ajax.open("GET", '/login/new.php?vorlage='+vorlagenName, true);
    4. ajax.send(null);
    5. return false;
    6. }
    7. function handlecompleteNewGeraet () {
    8. if ((ajax.readyState == 4) && (ajax.status == 200)) {
    9. document.getElementById('seriennummer').value = ajax.responseText;
    10. }
    11. }
    Alles anzeigen



    PS: Ich betone nochmals in FF läuft alles, so wie es sein soll. Was machen die am IE falsch?

    Danke für die Hilfe

    so long

    JFoX
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • wird denn die Funktion completeNewGeraet nur einmalig ausgeführt, oder liegts an ajax? Wie gesagt: bau dir ein paar alerts ein

    Quellcode

    1. function completeNewGeraet (vorlagenName) {
    2. alert('func begin with param '+vorlagenName);
    3. ajax.onreadystatechange = handlecompleteNewGeraet;
    4. ajax.open("GET", '/login/new.php?vorlage='+vorlagenName, true);
    5. ajax.send(null);
    6. alert('func ok');
    7. return false;
    8. }
    9. function handlecompleteNewGeraet () {
    10. alert('ajax state '+ajax.readyState);
    11. if ((ajax.readyState == 4) && (ajax.status == 200)) {
    12. alert('ajax dom start');
    13. document.getElementById('seriennummer').value = ajax.responseText;
    14. alert('ajax dom end');
    15. }
    16. }
    Alles anzeigen
  • OK neuer Versuch.

    Bei einer Select-Box kann man sachen auswählen.... Gurken, Tomaten, Kirschen.

    Wähle ich Gurken aus erscheind in dem Input-Feld der Preis (2EUR). Wenn ich dann aber Tomaten auswähle, bleibt der Preis bei 2EUR... Fazit das Input-Feld wird nicht erneuert, jdeoch ist der Fehler nur im IE. Die JS-Funktion soll immer bei onchange ausgeführt werden. Das Problem ist... Wenn ich einmal was auswähle, wird die Funktion gestartet. Wenn ich mich verklickt habe, wähle ich was anderes aus und das Input-Feld muss neu angepasst werden, was jedoch nicht passiert.

    So ich habe den Debug-Vorschlag von D0nUt eingebaut. Wie gesagt, beim ersten mal klappt alles, jedoch beim 2.mal wird nur:

    alert('func begin with param '+vorlagenName); <--- wird immer richtig übergeben bei jedem Versuch
    alert('func ok');

    ausgeführt.

    Sprich ab dem 2. change geht er nicht in die function handlecompleteNewGeraet ()....

    Die frage ist warum klappt es, wenn ich das erste mal was auswähle und ab dem 2, 3,4 etc. nicht?
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • So, jetzt funktioniert alles sowohle IE als auch FF, nur kann mir das einer begründen? Warum muss ich ajax neu initialisieren? In jeder anderen funktion funktioniert alles ohne probleme...

    Aber vielen Danke für die Hilfe...
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.