ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
821
821
EMPFEHLEN
-
AN ALLE bitte POST #6 lesen ! Hab es noch mal viel einfacher dargestellt!!
Hab es jetzt Stundenlang versucht und finde den Fehler nicht.
Die Daten werden gesendet aber dann passiert nichts mehr. Bekomme keine Antwort!?
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Unbenanntes Dokument</title> <script type="text/javascript" src="jquery/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="../jquery/jquery.lightbox_me.js"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { /* ANFANG -- Klick Event UPDATE */ $('#update-1-show').css('display','none'); $('.update-1').click(function() { $.getJSON("serverscripts/avz-update-ajax.php", function(data){ var avzID = $("[name=avzID]").val(data.result.avzID); $("#ausgabe").append(avzID); var avzStatus = $("[name=avzStatus]").val(data.result.avzStatus); $("#ausgabe").append(avzStatus); var avzUrl = $("[name=avzUrl]").val(data.result.avzUrl); $("#ausgabe").append(avzUrl); var avzUser = $("[name=avzUser]").val(data.result.avzUser); $("#ausgabe").append(avzUser); var avzPasswort = $("[name=avzPasswort]").val(data.result.avzPasswort); $("#ausgabe").append(avzPasswort); var avzFollow = $("[name=avzFollow]").val(data.result.avzFollow); $("#ausgabe").append(avzFollow); var avzArtBearb = $("[name=avzArtBearb]").val(data.result.avzArtBearb); $("#ausgabe").append(avzArtBearb); var avzEigenerAnkertxt = $("[name=avzEigenerAnkertxt]").val(data.result.avzEigenerAnkertxt); $("#ausgabe").append(avzEigenerAnkertxt); var avzArtFreisch = $("[name=avzArtFreisch]").val(data.result.avzArtFreisch); $("#ausgabe").append(avzArtFreisch); var avzArtIndex = $("[name=avzArtIndex]").val(data.result.avzArtIndex); $("#ausgabe").append(avzArtIndex); var avzAnmerkung = $("[name=avzAnmerkung]").val(data.result.avzAnmerkung); $("#ausgabe").append(avzAnmerkung); } ) $('#update-1-show').lightbox_me({ centered: true, overlaySpeed: 'fast', overlayDisappearSpeed: 'fast', overlayCSS: {background: 'black', opacity: .9}, onLoad: function() { $('#update-1-show').find('input:first').focus() } }); return false; }); /* ENDE -- Klick Event UPDATE */ } ); $(document).ready(function() { $.post("test.php", $("#update1").serialize()); }); </script> <?php $datum = date("Y-m-d"); // datum für ersten AVZ-Eintrag setzen ?> </head> <body> <button class="update-1">getJSON</button> <div id="update-1-show"> <form class="lightbox-form" action="" name="update1" id="update1"> <table align="center"> <tr valign="baseline"> <td nowrap="nowrap" align="right">AVZ Status:</td> <td><select name="avzStatus" size="1"> <option value="" selected="selected" ></option> <option value="NEU">NEU</option> <option value="OK">OK</option> <option value="GESPERRT">GESPERRT</option> <option value="UNWICHTIG">UNWICHTIG</option> <option value="DEFEKT">DEFEKT</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Avz Url:</td> <td><input type="text" name="avzUrl" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Avz User:</td> <td><input type="text" name="avzUser" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Avz Passwort:</td> <td><input type="text" name="avzPasswort" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzFollow:</td> <td><select name="avzFollow" size="1"> <option value="" selected="selected" ></option> <option value="Follow" >Follow</option> <option value="Nofollow" >Nofollow</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzArtBearb:</td> <td><select name="avzArtBearb"> <option value="" selected="selected" ></option> <option value="JA" >JA</option> <option value="NEIN" >NEIN</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzEigenerAnkertxt:</td> <td><select name="avzEigenerAnkertxt"> <option value=""></option> <option value="JA" >JA</option> <option value="NEIN" >NEIN</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzArtFreisch:</td> <td><input type="text" name="avzArtFreisch" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzArtIndex:</td> <td><input type="text" name="avzArtIndex" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right" valign="top">AvzAnmerkung:</td> <td><textarea name="avzAnmerkung" cols="50" rows="5"></textarea></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"> </td> <td><input type="submit" class="button" value="Datensatz aktualisieren" /></td> </tr> </table> <input type="hidden" name="avzUpDate" value="<?php echo $datum; ?>" /> <input type="hidden" name="MM_update" value="update" /> <input type="hidden" name="avzID" value="" /> </form> <p> </p> <!-- end .update-1-show --></div> </body> </html>
Kurze Erklärung.
Mit klick auf den button "getJSON" werden die Daten vom Server geladen und in einer Lightbox wird das Formular geöffnet und befüllt. Dies erledigt die ganze erste
$(document).ready(function() { }
Funktioniert auch!
In der zweiten $(document).ready(function() {} werden die Daten zum Server gesendet.
lt. Firebug werden Sie auch gesendet.
ABER es kommt keine Antwort zurück!? Egal was ich versuche. Ob ein einfacher php echo oder nur Text in der aufgerufenen "test.php" steht.
Habe ich einen Denkfehler ? Sitze jetzt schon 3 Stunden an dem Problem und bin echt für jede Hilfe dankbar.Geändert von kramoo (07.01.11 um 20:53 Uhr)
-
Woran siehst du denn, dass nichts zurück kommt? Benutzt du ein Programm oder ein Plugin, um den Datenverkehr zu überwachen?
Gibt folgendes alert irgendwas aus?
Code javascript:1 2 3 4 5
$(document).ready(function() { $.post("test.php", $("#update1").serialize(), function(data) { alert(data); }); });
-
Dein Code zeigt mir die Seite test.php an. Hab da nur Text mit einem einfachen Hallo trin und das wird angezeigt.
So funktioniert aber das Versenden nicht mehr ! Das Formular sendet keine Daten und dein Code ruft direkt beim ersten Aufruf der Seite die text.php auf.
Wenn ich folgenden Code benutze funktioniert das Versenden:
Code :1 2 3 4 5 6
$(".button").click(function() { $.post("serverscripts/avz-update-ajax2.php", $("#update1").serialize(), function(data) { alert("Data Loaded: " + data); }); });
Aber die Rückgabe nicht mehr siehe Screenshots.
Übertragung:
http://www.kramoo.de/fehler1Post.gif
Antwort:
http://www.kramoo.de/fehler2Antwort.gif
Ich verstehe es echt nicht ?
-
Das macht deiner auch. Er steht ja direkt in der ready-Funktion.
Da ich nicht ganz verstehe, was du überhaupt vor hast, kann ich dir im Moment nicht weiter helfen. Ich kann nur festhalten, dass mehrere ready-Funktionen nichts daran ändern, dass sie sofort beim Laden der Seite ausgeführt werden.
-
Ja das hatte ich noch falsch mit meinem Code !
Richtig ist der zweite!
Also:
Code :1 2 3 4 5 6
$(".button").click(function() { $.post("serverscripts/avz-update-ajax2.php", $("#update1").serialize(), function(data) { alert("Data Loaded: " + data); }); });
und der wird aufgerufen wenn man das Formular Absendet. Er verschickt auch die Daten wie in Bild http://www.kramoo.de/fehler1Post.gif zu sehen ist aber die Rückgabe liefert eben nichts. Wie in Bild http://www.kramoo.de/fehler2Antwort.gif zu sehen ist.
Warum bekomme ich keinen Wert zurück?
Hab es auch schon direkt mit $.ajax({ versucht aber leider das gleiche Ergebnis.
-
Habe jetzt noch mal zwei einfache neue Dateien angelegt. Mit dem gleichen Fehler.
Code testneu.php:
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Unbenanntes Dokument</title> <script type="text/javascript" src="jquery/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="../jquery/jquery.lightbox_me.js"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { $("#formtest").submit(function() { $.post("testneu2.php", $("#formtest").serialize(), function(data) { alert("Data Loaded: " + data); }); }); }); </script> </head> <body> <form action="" method="post" enctype="application/x-www-form-urlencoded" id="formtest"> <input name="name" type="text" /> <input name="senden" type="submit" /> </form> </body> </html>
die testneu2.php Rückgabedatei:
Code :1
Hallo Welt!
Senden funktioniert aber die Rückgabe ist leider leer so wie in diesen zwei Screenshots.
http://www.kramoo.de/fehler1Post.gif
http://www.kramoo.de/fehler2Antwort.gifGeändert von kramoo (07.01.11 um 20:55 Uhr)
-
Die rote Farbe deutet an, dass es einen Fehler gab. Guck mal was der Server für einen Status Code zurück gibt.
-
So das Programm ist fertig und läuft jetzt auch!
Deshalb möchte ich es hier zur Verfügung stellen.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Dynamisches Formular in einer Lightbox mit AJAX u. JQuery</title> <link rel="stylesheet" type="text/css" href="style.css"/> <script type="text/javascript" src="jquery/jquery-1.4.4.min.js"></script> <script type="text/javascript" src="../jquery/jquery.lightbox_me.js"></script> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { /* ANFANG -- Klick Event UPDATE */ $('#update-1-show').css('display','none'); // blendet das Formular aus /* zweiter Schritt: Die id wird aus dem Link gewonnen und dem getJson Aufruf hinzugefügt. getJson ruft die Daten von Server ab */ $('a.update-link').click(function() { var ID = $(this).attr('id'); $.getJSON("serverscripts/avz-update-anfordern.php?avzID="+ID, function(data){ var avzID = $("[name=avzID]").val(data.result.avzID); $("#ausgabe").append(avzID); var avzStatus = $("[name=avzStatus]").val(data.result.avzStatus); $("#ausgabe").append(avzStatus); var avzUrl = $("[name=avzUrl]").val(data.result.avzUrl); $("#ausgabe").append(avzUrl); var avzUser = $("[name=avzUser]").val(data.result.avzUser); $("#ausgabe").append(avzUser); var avzPasswort = $("[name=avzPasswort]").val(data.result.avzPasswort); $("#ausgabe").append(avzPasswort); var avzFollow = $("[name=avzFollow]").val(data.result.avzFollow); $("#ausgabe").append(avzFollow); var avzArtBearb = $("[name=avzArtBearb]").val(data.result.avzArtBearb); $("#ausgabe").append(avzArtBearb); var avzEigenerAnkertxt = $("[name=avzEigenerAnkertxt]").val(data.result.avzEigenerAnkertxt); $("#ausgabe").append(avzEigenerAnkertxt); var avzArtFreisch = $("[name=avzArtFreisch]").val(data.result.avzArtFreisch); $("#ausgabe").append(avzArtFreisch); var avzArtIndex = $("[name=avzArtIndex]").val(data.result.avzArtIndex); $("#ausgabe").append(avzArtIndex); var avzAnmerkung = $("[name=avzAnmerkung]").val(data.result.avzAnmerkung); $("#ausgabe").append(avzAnmerkung); } ) // Schritt drei: Formular wird mittels Lightbox geöffnet $('#update-1-show').lightbox_me({ centered: true, overlaySpeed: 'fast', overlayDisappearSpeed: 'fast', overlayCSS: {background: 'black', opacity: .9}, onLoad: function() { $('#update-1-show').find('input:first').focus() } }); return false; }); /* ENDE -- Klick Event UPDATE */ // ANFANG -- Formular Senden // Schritt vier: Das Formular wird gesendet und Lightbox gschlossen $("#formupdate").submit(function() { $.post("serverscripts/avz-update-eintragen.php", $("#formupdate").serialize(), function(data) { $("#meldung").text(data); // gibt den Response aus } ); $('.lb_overlay').css( {'display': 'none'} ); $('#update-1-show').css( {'display': 'none'} ); return false; // **** WICHTIG sonst funktioniert die Rückgabe nicht **** }); // ENDE -- Formular u. Lightbox } ); </script> <?php $datum = date("Y-m-d"); // datum für ersten AVZ-Eintrag setzen ?> </head> <body> <!-- Erster Schritt: Der Link wird mit $('a.update-link').click(function() abgefangen --> <a href="serverscripts/avz-update-anfordern.php" id="225" class="update-link">11111</a> <a href="serverscripts/avz-update-anfordern.php" id="1" class="update-link">22222</a> <a href="serverscripts/avz-update-anfordern.php" id="2" class="update-link">33333</a> <div id="meldung"></div> <div id="update-1-show"> <form id="formupdate" class="lightbox-form" > <table align="center"> <tr valign="baseline"> <td nowrap="nowrap" align="right">AVZ Status:</td> <td><select name="avzStatus" size="1"> <option value="" selected="selected" ></option> <option value="NEU">NEU</option> <option value="OK">OK</option> <option value="GESPERRT">GESPERRT</option> <option value="UNWICHTIG">UNWICHTIG</option> <option value="DEFEKT">DEFEKT</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Avz Url:</td> <td><input type="text" name="avzUrl" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Avz User:</td> <td><input type="text" name="avzUser" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">Avz Passwort:</td> <td><input type="text" name="avzPasswort" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzFollow:</td> <td><select name="avzFollow" size="1"> <option value="" selected="selected" ></option> <option value="Follow" >Follow</option> <option value="Nofollow" >Nofollow</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzArtBearb:</td> <td><select name="avzArtBearb"> <option value="" selected="selected" ></option> <option value="JA" >JA</option> <option value="NEIN" >NEIN</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzEigenerAnkertxt:</td> <td><select name="avzEigenerAnkertxt"> <option value=""></option> <option value="JA" >JA</option> <option value="NEIN" >NEIN</option> </select></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzArtFreisch:</td> <td><input type="text" name="avzArtFreisch" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right">AvzArtIndex:</td> <td><input type="text" name="avzArtIndex" value="" size="32" /></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right" valign="top">AvzAnmerkung:</td> <td><textarea name="avzAnmerkung" cols="50" rows="5"></textarea></td> </tr> <tr valign="baseline"> <td nowrap="nowrap" align="right"> </td> <td><input type="submit" value="Datensatz aktualisieren" id="buttonupdate"/></td> </tr> </table> <input type="hidden" name="avzUpDate" value="<?php echo $datum; ?>" /> <input type="hidden" name="MM_update" value="update" /> <input type="hidden" name="avzID" value="" /> </form> <p> </p> <!-- end .update-1-show --></div> </body> </html>
Vielleicht könnt Ihr mal schauen ob ich was besser machen kann!?
Was mich noch sehr stört ist das ich mit
Code :1 2
var avzID = $("[name=avzID]").val(data.result.avzID); $("#ausgabe").append(avzID);
alle Formularfelder einzeln befüllen muss. Wird wohl nicht anders gehen oder?
-
Steck die ganzen Namen in ein Array. So in etwa
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13
var names = ['avzID', 'avzStatus', 'avzUser'];//Hier noch mehr reinstecken $.getJSON("serverscripts/avz-update-anfordern.php?avzID="+ID, function(data){ var ausgabe = $("#ausgabe"); for(var i=0; i<names.length; i++) { ausgabe.append( $("[name=" + names[i] + "]").val(data.result[names[i]]) ); } } )
-
Ja das sieht schon viel besser aus! Danke
Wäre es nicht noch möglich
var names = ['avzID', 'avzStatus', 'avzUser'];//Hier noch mehr reinstecken
die automatisch zu generieren zu lassen?
-
Hast du noch eine Idee wie ich folgendes Problem lösen könnte?
Mit dem Code oben habe ich das Problem dass darunter eine Tabelle ist mit den Links mit der ID wie oben. Es werden aber nur die ersten 10 Einträge der Tabelle angezeigt die restlichen kann man mit pagination also 1,2,3 oder mittels trop down zeige die ersten 100 anzeigen lassen. Wird mit dataTable gemacht. DataTable lädt auch die Ganze Tabelle im Client. Im Quelltext sehe ich also die ganze Tabelle.
Das ID auslesen funktioniert aber nur bei den ersten 10 Einträgen. Wenn ich auf z.B die zweite Seite gehe funktioniert das ID auslesen mittels " var ID = $(this).attr('id'); " nicht mehr obwohl die ID vorhanden ist.
Weiß nicht wie ich das Problem lösen kann ?
Danke
-
Zur ersten Frage. Du kannst einfach alle Form-Element selektieren und setzt deren Wert sofern in deiner json Antwort einer vor kommt.
Code javascript:1 2 3 4 5 6 7 8 9 10 11 12 13
$.getJSON("serverscripts/avz-update-anfordern.php?avzID="+ID, function(data){ var ausgabe = $("#ausgabe"); $(":input").each(function(element) { if(element.name && data.result[element.name]) { ausgabe.append( element.value = data.result[element.name] ); } }); } );
Zur zweiten Frage: Vielleicht hilft dir "live()" weiter, sofern du die Element dynamisch nachlädst.
Anstatt das
Code javascript:1
$('a.update-link').click(function() {});
lieber folgendes
Code javascript:1
$('a.update-link').live('click', function() {});
-
Danke mit deiner Hilfe habe ich es geschafft!
Mit getJSON habe ich die Datan so bekommen:
Code :1 2 3
{"result": {"avzID":"66","avzUrl":"http://www.crasch.de","avzUser":"keine registrierung nötig","avzPasswort":"","avzUpDate":"2011-01-06","avzFollow":"","avzArtBearb":"","avzEigenerAnkertxt":"","avzArtFreisch":"","avzArtIndex":"","avzAnmerkung":"","avzStatus":"DEFEKT" }}
und so sieht jetzt mein Umsetzung aus:
Code :1 2 3 4 5 6 7 8
$.getJSON("../serverscripts/avz-update-anfordern.php?avzID="+ID, function(data) { var ausgabe = $("#ausgabe"); $.each( data.result, function(key, value) { ausgabe.append( $("[name=" + key + "]").val(value) ); }); } );
Ist also um einiges schlanker und dynamisch !
Danke
Ähnliche Themen
-
Jquery post() Problem
Von mogmog im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 29.10.10, 15:30 -
jQuery sendet kein Post/keine Daten
Von ChrisMunich im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 11.07.10, 20:11 -
jQuery und Post
Von tsluga im Forum Javascript & AjaxAntworten: 0Letzter Beitrag: 12.03.10, 13:34 -
jQuery: $.post Rückgabewert als Rückgabewert der Funktion - geht das?
Von Kryptaesthesie im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 15.01.09, 07:40 -
mysql_query: Rückgabewert bei erfolgreicher abfrage die keine Daten zurückliefert
Von elmato im Forum PHPAntworten: 2Letzter Beitrag: 24.11.05, 15:08





Zitieren


Login





