tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
4581
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    Ich suche eine Möglichkeit mit jQuery dynamisch weitere Inputfelder nachzuladen bzw. diese auch wieder zu löschen.
    So ähnlich wie hier:
    http://mohamedshaiful.googlepages.co...emove_form.htm

    Nur eben dass, die Felder bereits mit Daten aus der DB gefüllt sind, wozu ich wohl Ajax benötige.

    Habe auch schonmal folgenden Code probiert:
    HTML-Code:
    <a class="ajax" href="#">weiteres Feld hinzufügen</a>
    <div id="quote"></div>
    
    $('a.ajax').click(function() {
            $('#quote').load('ajax.php');
            $(location).attr("hash", $(this).attr("hash"));
            return false;
        });
    Funktioniert soweit ganz gut. Das Problem ist nur die benötigte ID. Um später beim Speichern des Formulars alle Werte zuordnen zu können, würde ich gerne den Inputfeldern IDs vergeben.

    Wie realisiere ich das am besten?
    Was kann ich am bisherigne Code verbessern?
     

  2. #2
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    kannst Du mal Deine ajax.php zeigen? Ich verstehe irgendwie nicht ganz, was genau Du da vorhast.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  3. #3
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    klar kein Problem

    PHP-Code:
    echo '<div class="kategorieauswahl" id="1"><label>Kategorie:</label>

            <select name="p_kategorie" id="p_kategorie">
            <option value=""></option>'
    ;
            
    $kategorien Database::queryArray("SELECT id, name FROM _category;");

            foreach (
    $kategorien as $wert) {
                echo 
    '<option value="$wert[id]">$wert[name]</option>';
            }
            echo 
    '</select></div>'
    Ich möchte jetzt nur, dass die ID des <div> und die ID des <select> ansteigend sind. Also beim ersten mal klicken 2, dann 3,...
     

  4. #4
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    zunächst würde ich mit der jQuery-Methode ajax arbeiten. Diese lässt es zu, nach erfolgreichem Request eine Callback-Funktion aufrufen. Dort kannst du eine globale Variable inkrementieren. Diese Variable wird dem Request als Parameter mitgegeben und dient auf der Serverseite als ID.

    Auf der Clientseite könnte es wie folgt aussehen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    <html>
    <head>
    <title>www.tutorials.de</title>
    <meta name="author" content="Quaese">
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <script src="jquery-1.3.1.js" type="text/javascript"></script>
    <script type="text/javascript">
      <!--
    var intCountID = 0;
    $(document).ready(function(){
      $('a.ajax').click(function(){
        $.ajax({
          type: "POST",
          url: "ajax.php",
          data: {'id': intCountID},
          success: function(msg){
            $('#quote').append(msg);
            $(location).attr("hash", $(this).attr("hash"));
            intCountID++;
          }
        });
      });
    });
     //-->
    </script>
    </head>
    <body>
    <a class="ajax" href="#">weiteres Feld hinzufügen</a>
    <div id="quote"></div>
    </body>
    </html>

    Auf der Serverseite verarbeitest du die Post-Variable 'id' - Beispiel:
    Code :
    1
    
    echo("<div id=\"id_".$_POST['id']."\">".$_POST['id']."</div>\n");

    Es sei noch angemerkt, dass IDs mit einem Buchstaben beginnen müssen.

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  5. #5
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    ok danke soweit

    Habe noch ein anderes Problem.
    Und zwar möchte ich etwas erscheinen lassen und das Feld dann den Focus geben, damit man gleich schreiben kann.
    Klappt aber nicht. Was mache ich falsch?

    $('a.test').click(function() {
    $('#suche').fadeIn(300);
    $("input.focus:last").focus();
    });
     

  6. #6
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    was sagt denn die Fehlerkonsole?

    Zitat Zitat von jaegerschnitzel Beitrag anzeigen
    Code :
    1
    
    $("input.focus:last").focus();
    Das input-Feld hat die Klasse "focus"? Oder meintest Du

    Code :
    1
    
    $("input:last").focus();

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  7. #7
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    Jo mein input-Feld hat die Klasse "focus".
    Fehlerkonsole sagt nichts.

    Wenn ich auf den Link klicke erscheint das div mit der id "suche". Darin befindet sich das Input feld.
    Wenn es erscheint hat es ganz kurz den Focus wie es aussieht, behält ihn aber leider nicht, obwohl danach ja nichts mehr ausgeführt wird.
     

  8. #8
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    und welches Element bekommt stattdessen den Focus?

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  9. #9
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    gute Frage
    keines würd ich sagen. Wenn ich aber ein weiteres mal Tab drücke bekommt das Input feld den Focus.
     

  10. #10
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Du könntest mal testen, welches Feld überhaupt ausgewählt wird, indem Du ihm z.B. probehalber einen farbigen Rahmen verpasst.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  11. #11
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    OK, es wird das richtige ausgewählt.
    Dann bekommts vermutlich auch den Focus. Nur verschwindet der wieder.


    Hab das Ganze mit hover statt click getestet, nun gehts.
    Was könnte ich machen, dass es mit click klappt?
     

  12. #12
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    tritt das Verhalten bei jedem zugefügten Textfeld auf oder nur beim ersten?

    Du könntest folgendes versuchen:
    Code :
    1
    2
    3
    4
    5
    6
    
    $('a.test').click(function() {
      $('#suche').fadeIn(300, function(){
        $("input.focus:last").focus();
      });
      $("input.focus:last").focus();
    });

    Da der Fokus wie von dir beschrieben wieder vom Feld genommen wird, könnte es mit dem Faden zusammenhängen. Durch den Aufruf einer Callback-Funktion setzt du einfach den Fokus für den Fall, dass gefadet wird, nachdem der Einblendvorgang abgeschlossen wurde.

    Vielleicht hilft dir das weiter.

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  13. #13
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Seltsam... bei mir blinkt der Cursor auch nur kurz auf, das Feld hat aber dennoch den Focus (tipp einfach mal was ).

    LG

    Edit: mit Quaeses Vorschlag funktioniert es.
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  14. #14
    jaegerschnitzel jaegerschnitzel ist offline Mitglied Silber
    Registriert seit
    Dec 2004
    Beiträge
    71
    Zitat Zitat von Quaese Beitrag anzeigen
    Hi,

    tritt das Verhalten bei jedem zugefügten Textfeld auf oder nur beim ersten?

    Du könntest folgendes versuchen:
    Code :
    1
    2
    3
    4
    5
    6
    
    $('a.test').click(function() {
      $('#suche').fadeIn(300, function(){
        $("input.focus:last").focus();
      });
      $("input.focus:last").focus();
    });
    Da der Fokus wie von dir beschrieben wieder vom Feld genommen wird, könnte es mit dem Faden zusammenhängen. Durch den Aufruf einer Callback-Funktion setzt du einfach den Fokus für den Fall, dass gefadet wird, nachdem der Einblendvorgang abgeschlossen wurde.

    Vielleicht hilft dir das weiter.

    Ciao
    Quaese
    so funktionierts danke!

    Habe mir überlegt das div mit facebox anzeigen zu lassen.
    Da funktionierts das focus aber wieder nicht. Hättest du dafür auch ne Lösung?
     

  15. #15
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    wie sieht denn dein bisheriger Versuch mit facebox aus? Poste doch bitte den aufs Wesentliche reduzierten Code.

    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 31.08.10, 12:41
  2. Dynamisch erstellte Inputfelder werden beim POST nicht übergeben
    Von anachronist im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 21.10.09, 16:50
  3. Hilfe bei Abfrage dynamisch erzeugter inputfelder
    Von Hunting4u im Forum Javascript & Ajax
    Antworten: 14
    Letzter Beitrag: 23.08.09, 15:07
  4. Textareas hinzufügen entfernen,...
    Von JesusFreak777 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 21.08.08, 01:03
  5. [SWT] TreeItem hinzufügen/entfernen
    Von redX im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 10.04.06, 14:15