PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
AJAX Anfragen werden nicht verwertet
Beitrag
<blockquote data-quote="ElementZ" data-source="post: 2317713" data-attributes="member: 477713"><p>Hallo beisammen,</p><p>ich habe mal wieder ein Problem. Ich möchte eine kleine Administrationsseite für Blogeinträge machen. Das habe ich so gelöst, dass ich mir über PHP eine Tabelle ausgeben lasse, wo die Blogeinträge untereinander weg eingetragen sind. Dazu habe ich Links eingebaut, mit denen man Löschen und Bearbeiten soll.</p><p>Das mache ich so:</p><p>[CODE]<a href=\"javascript:sendDelete($id);\">Löschen</a></p><p><a href=\"javascript:createUpdate($id)\">Bearbeiten</a>[/CODE]</p><p></p><p>Funktioniert auch prima. Beim klick auf diese Links, sende ich per JS eine AJAX-Anfrage an den Server, der diese dann weiter verarbeitet. Das funktioniert auch super so weit. Mein Problem liegt jetzt bei folgendem: Ich habe ein Popupfenster, indem ein Formular ist, womit man den Inhalt eines Blogeintrags ändern kann. Der vorhere Inhalt wird durch eine AJAX-Anfrage reingeladen, das funktioniert. Wenn ich das Formular nun abschicke, soll er eine weitere Anfrage versenden, womit ich die Daten dann an den Server liefere, der dann die Datenbankeinträge updatet. Das funktioniert bei mir in Dreamweaver in der Live-Vorschau auch sehr gut. Bei Chrome nicht. Es ist egal, ob ich über POST oder GET die Werte übermittele, unter Chrome bekomme ich nicht einmal Rückmeldung, ob die Anfrage vom Server angenommen wurde. Da ich bei der Anfrage mehrere Werte übermitteln muss, habe ich irgendwie das Gefühl, dass es daran liegt, aber dann dürfte es in anderen Browsern auch nicht klappen.</p><p></p><p>Hier mal mein Script zum Erstellen des Bearbeitungsformulars und das Füllen mit den vorherigen Werten. (funktioniert):</p><p>[CODE]function createUpdate(id) {</p><p> var titel = document.getElementById('titel');</p><p> var text = document.getElementById('text');</p><p> var hide = document.getElementById('hide');</p><p> document.getElementById("hover").style.display = "block";</p><p> req = getRequest();</p><p> if(req) {</p><p> req.onreadystatechange = function() {</p><p> if(req.readyState == 4 && req.status == 200) {</p><p> var str = req.responseText;</p><p> var inhalt = str.split("(((())))");</p><p> titel.value = inhalt[0];</p><p> text.value = inhalt[1];</p><p> hide.value = id;</p><p> }</p><p> }</p><p> req.open("get", "update.php?id="+id, true);</p><p> req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");</p><p> req.send(null);</p><p> }</p><p>}[/CODE]</p><p></p><p>Und nun das Skript, was die Daten dann abschickt:</p><p>[CODE]function sendUpdate() {</p><p> var req = getRequest();</p><p> if(req) {</p><p> var hide = document.getElementById('hide');</p><p> var titel = document.getElementById('titel');</p><p> var text = document.getElementById('text');</p><p> req.onreadystatechange = function() {</p><p> if(req.readyState == 4 && req.status == 200) {</p><p> alert(req.responseText);</p><p> }</p><p> }</p><p> req.open("post", "update.php", true);</p><p> req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");</p><p> req.send('id='+hide.value+'&titel='+titel.value+'&text="+text.value);</p><p> }</p><p>}[/CODE]</p><p></p><p>Ich speicher die ID des Eintrags in einem Hiddenfeld, das funktioniert, daran liegt es nicht. Ich habe auch bereits versucht, die Werte anhand "encodeURIComponent()" zu bearbeiten und die "&"-Zeichen zwischen den POST-Werten auch schon zu "&amp;" geändert, bringt alles nichts.</p><p></p><p>Hier nochmal das dazu passende Serverscript:</p><p>[CODE]<?</p><p>include("config.inc.php");</p><p>if(isset($_POST['id'])) {</p><p> if(isset($_POST['titel']) && isset($_POST['text'])) {</p><p> $id = $_POST['id'];</p><p> $titel = $_POST['titel'];</p><p> $text = $_POST['text'];</p><p> echo "$id, $titel, $text";</p><p> /*</p><p> $con = mysqli_connect($host, $user, $password, $database);</p><p> $befehl = "UPDATE `$table` SET title='$titel', article='$text' WHERE id=$id";</p><p> mysqli_query($con, $befehl);</p><p> mysqli_close($con);</p><p> echo "ERFOLGREICH!";*/</p><p> } else {</p><p> $id = $_POST['id'];</p><p> $connection = mysqli_connect($host, $user, $password, $database) or exit("Fehler beim Verbinden mit der Datenbank.");</p><p> $befehllesen = "SELECT `title`, `article` FROM `$table` WHERE id=$id";</p><p> $query = mysqli_query($connection, $befehllesen);</p><p> $data = mysqli_fetch_object($query);</p><p> $vtitel = $data -> title;</p><p> $vtext = $data -> article;</p><p> mysqli_close($connection);</p><p> echo "$vtitel (((()))) $vtext";</p><p> }</p><p>} else{ </p><p> echo "Es wurde kein zu bearbeitender Beitrag ausgewählt.";</p><p>}</p><p>?>[/CODE]</p><p>Bis zu der Ausgabe der 3 zu übergebenden Werte komme ich in Chrome gar nicht, IE macht das problemlos.</p><p></p><p>Ich würde mich riesig freuen, wenn mir jemand helfen könnte <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" /></p><p></p><p>Dankeschön und einen schönen Abend wünsche ich</p><p></p><p>MfG</p><p>ElementZ</p></blockquote><p></p>
[QUOTE="ElementZ, post: 2317713, member: 477713"] Hallo beisammen, ich habe mal wieder ein Problem. Ich möchte eine kleine Administrationsseite für Blogeinträge machen. Das habe ich so gelöst, dass ich mir über PHP eine Tabelle ausgeben lasse, wo die Blogeinträge untereinander weg eingetragen sind. Dazu habe ich Links eingebaut, mit denen man Löschen und Bearbeiten soll. Das mache ich so: [CODE]<a href=\"javascript:sendDelete($id);\">Löschen</a> <a href=\"javascript:createUpdate($id)\">Bearbeiten</a>[/CODE] Funktioniert auch prima. Beim klick auf diese Links, sende ich per JS eine AJAX-Anfrage an den Server, der diese dann weiter verarbeitet. Das funktioniert auch super so weit. Mein Problem liegt jetzt bei folgendem: Ich habe ein Popupfenster, indem ein Formular ist, womit man den Inhalt eines Blogeintrags ändern kann. Der vorhere Inhalt wird durch eine AJAX-Anfrage reingeladen, das funktioniert. Wenn ich das Formular nun abschicke, soll er eine weitere Anfrage versenden, womit ich die Daten dann an den Server liefere, der dann die Datenbankeinträge updatet. Das funktioniert bei mir in Dreamweaver in der Live-Vorschau auch sehr gut. Bei Chrome nicht. Es ist egal, ob ich über POST oder GET die Werte übermittele, unter Chrome bekomme ich nicht einmal Rückmeldung, ob die Anfrage vom Server angenommen wurde. Da ich bei der Anfrage mehrere Werte übermitteln muss, habe ich irgendwie das Gefühl, dass es daran liegt, aber dann dürfte es in anderen Browsern auch nicht klappen. Hier mal mein Script zum Erstellen des Bearbeitungsformulars und das Füllen mit den vorherigen Werten. (funktioniert): [CODE]function createUpdate(id) { var titel = document.getElementById('titel'); var text = document.getElementById('text'); var hide = document.getElementById('hide'); document.getElementById("hover").style.display = "block"; req = getRequest(); if(req) { req.onreadystatechange = function() { if(req.readyState == 4 && req.status == 200) { var str = req.responseText; var inhalt = str.split("(((())))"); titel.value = inhalt[0]; text.value = inhalt[1]; hide.value = id; } } req.open("get", "update.php?id="+id, true); req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); req.send(null); } }[/CODE] Und nun das Skript, was die Daten dann abschickt: [CODE]function sendUpdate() { var req = getRequest(); if(req) { var hide = document.getElementById('hide'); var titel = document.getElementById('titel'); var text = document.getElementById('text'); req.onreadystatechange = function() { if(req.readyState == 4 && req.status == 200) { alert(req.responseText); } } req.open("post", "update.php", true); req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); req.send('id='+hide.value+'&titel='+titel.value+'&text="+text.value); } }[/CODE] Ich speicher die ID des Eintrags in einem Hiddenfeld, das funktioniert, daran liegt es nicht. Ich habe auch bereits versucht, die Werte anhand "encodeURIComponent()" zu bearbeiten und die "&"-Zeichen zwischen den POST-Werten auch schon zu "&" geändert, bringt alles nichts. Hier nochmal das dazu passende Serverscript: [CODE]<? include("config.inc.php"); if(isset($_POST['id'])) { if(isset($_POST['titel']) && isset($_POST['text'])) { $id = $_POST['id']; $titel = $_POST['titel']; $text = $_POST['text']; echo "$id, $titel, $text"; /* $con = mysqli_connect($host, $user, $password, $database); $befehl = "UPDATE `$table` SET title='$titel', article='$text' WHERE id=$id"; mysqli_query($con, $befehl); mysqli_close($con); echo "ERFOLGREICH!";*/ } else { $id = $_POST['id']; $connection = mysqli_connect($host, $user, $password, $database) or exit("Fehler beim Verbinden mit der Datenbank."); $befehllesen = "SELECT `title`, `article` FROM `$table` WHERE id=$id"; $query = mysqli_query($connection, $befehllesen); $data = mysqli_fetch_object($query); $vtitel = $data -> title; $vtext = $data -> article; mysqli_close($connection); echo "$vtitel (((()))) $vtext"; } } else{ echo "Es wurde kein zu bearbeitender Beitrag ausgewählt."; } ?>[/CODE] Bis zu der Ausgabe der 3 zu übergebenden Werte komme ich in Chrome gar nicht, IE macht das problemlos. Ich würde mich riesig freuen, wenn mir jemand helfen könnte :) Dankeschön und einen schönen Abend wünsche ich MfG ElementZ [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ▲ = 5, ▼ = 2 und ■ = 7, was ist ▲ × ▼ + ■?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
PHP, Javascript, jQuery, Ajax, nodeJS, MySQL...
AJAX Anfragen werden nicht verwertet
Oben