Wie kann ich AJAX verwenden, um drucken Sie Daten, die innerhalb eines div?
Habe ich zwei Dateien. Eine Datei namens index.php und eine weitere Datei namens process.php.
Ich habe ein Formular, das unterwirft process.php in index.php:
<form class="form" action="process.php" method="POST" name="checkaddress" id="checkaddress">
<table>
<tr class="element">
<td><label>Address</label></td>
<td class="input"><input type="text" name="address" /></td>
</tr>
</table>
<input type="submit" id="submit" value="Submit"/>
</form>
<div class="done"></div>
Ich habe auch ein Prozess, in process.php echo einige Daten basierend auf der Eingabe. Wie würde ich in der Lage sein, um AJAX verwenden, um das Formular Absenden ohne die Seite zu verlassen?
Ist es etwas wie:
$.ajax({
url: "process.php",
type: "GET",
data: data,
cache: false,
success: function (html) {
$('.done').fadeIn('slow');
}
});
Welcher Seite würde ich den obigen code auf, ob es richtig war?
Auch, wie ändere ich den obigen code zu sagen, was die process.php ausgegeben? Zum Beispiel, wenn ich echo "Hallo" auf process.php, wie mache ich, dass es in der getan div?
Ich habe gesehen, viele Antworten über AJAX, aber Sie alle verlassen sich auf Daten, die vor-gemacht, wie APIs. Ich muss eine Datenbank-Abfrage und holt sich die Daten, abhängig von der eingegeben Adresse zu und drucken die Daten aus.
- $('.getan').html('Hallo').fadeIn('slow'); (oder) $('.getan').html(html).fadeIn('slow');
- Setzen Sie die js-Schnipsel in index.php und mit dem zweiten Beispiel oben im Kommentar zur Ausgabe der Reaktion
- Also, wenn meine php-Datei ausgegeben "3rfhd" nachdem ich eine MYSQL-query ('.getan').html(html).fadeIn('slow'); zeigen würde "3rfhd"? Ich benutzte es vor und dachte, es zeigt nur, was im inneren des div, die zuvor ausgeblendet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie sammeln die Daten in der form, so dass Sie senden können Sie den Prozess-Seite, und Sie müssen ausführen von code beim Absenden des Formulars (und Abbrechen des Standard-Formulars)
[update]
Wenn Sie die Daten ändern, bevor Sie Sie abgeben, müssen Sie manuell die Parameter zu übergeben, um die ajax -
var data = $(this).serialize();
, kann ich das nicht auch tunvar address= $('input[address=address]');
; warum muss ich, um es zu serialisieren. Ebenfalls funktioniert das abrufen der Daten aus der process.php die Datei selbst echo-Daten?html
argument haben Sie in dersuccess
Funktion ist alles enthalten, was zurückgegeben wird, von derprocess.php
Seite (tun, wie anzeigen der Quelle auf der process.php).$('.done').html(html).
und$('.done).replaceWith('<div class="done">'.html(html).'</div>');
oder würde der zweite code auch funktioniert?.
verwenden Sie für die Verkettung von strings. Das ist php und nicht javascript..html()
wie in meinem Beispiel, ist eine jquery-Methode, ersetzt den html-Inhalt eines Elements mit dem, was Sie an ihn übergeben (api.jquery.com/html/#html2).serialize
erstellen von url-Parametern auf der Grundlage dername
- Attribut des form-elements..serialize
wird erstellen Sie die richtige data zu passieren, um den ajax-Aufruf für alle - Elementen in der form, aber tun Sie es auf Ihre aktuellen Werte. Wenn Sie möchten, um Sie zu ändern, die Sie haben, es zu tun eins nach dem anderen und fügen Sie Sie dann auf ein Objekt übergeben, um den ajax-Aufruf ..var data = {};
zum speichern der Daten aus process.php oder war es einzig und allein dem Zweck speichern, um die neue Adresse variable?data
argument der ajax-es wird die url-Kodierung auf seine eigenen..data: data,
tun in ajax?data
ist der name des Arguments und das Rechtdata
ist die variable, die wir erstellt haben, in der höheren Funktion (das Objekt mit der Adresse). Ich habe gerade den Namen im code, um es ein bisschen mehr intuitiv..done
es wird sich ändern, den html-Code in beide von Ihnen, und auch fade-in beiden.. wenn es überhaupt nicht funktioniert dann liegt das problem woanders.. bitte posten Sie eine live-demo..div
Elemente mit Ihren eigenenid
und Suche im Gegenzug für Sie.Könnten Sie die jQuery form plugin: http://jquery.malsup.com/form/
Lassen Sie mich wissen, wenn Sie möchten, Beispiel-code.