Datei-Pfad für AJAX-Skript (in WordPress)
Verwende ich das jquery-ajax-Skript zum senden von E-Mail:
$.ajax({
url: process.php,
type: "POST",
data: data,
cache: false,
...
in url
rufe ich die php-Datei, die sendet E-Mail, aber ajax bekommt es nur, wenn ich geben Sie den vollständigen Pfad:
url: "http://www.domain.com/wp-content/themes/site_theme/templates/process.php",
aber ich muss verwenden Sie eine syntax wie diese:
url: "../../templates/process.php",
oder über eine variable zu deklarieren, die in den html-header/footer
Html
<script type="text/javascript">
var urlMail = '<?php bloginfo('template_url'); ?>/templates/process.php';
</script>
Skript
url: "../../templates/process.php",
aber mit den beiden oben genannten Fällen die browser-Konsole ruft dieser Fehler:
POST http://www.domain.com/templates/process.php 404 Not Found 1.56s
Wo bin ich falsch?
Haben Sie versucht:
Was ist Los mit den vollständigen Pfad angeben?
mit Ihrer Lösung ruft dieser Fehler
da ich dieses Skript verwenden, die in anderen Projekten und ich will nicht, aktualisieren Sie den Pfad zu jeder Zeit.
Was ist eigentlich echo aus
url: "templates/process.php",
?Was ist Los mit den vollständigen Pfad angeben?
mit Ihrer Lösung ruft dieser Fehler
POST http://www.domain.com/contact-page/templates/form-contatti-mail.php 404 Not Found 1.34s
da ich dieses Skript verwenden, die in anderen Projekten und ich will nicht, aktualisieren Sie den Pfad zu jeder Zeit.
Was ist eigentlich echo aus
<?php bloginfo('template_url'); ?>
??? Sieht leer, wenn das ist Ihr Fehler: POST http://www.domain.com/templates/process.php 404 Not Found 1.56s
InformationsquelleAutor Fred K | 2013-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist nicht der Weg zur Implementierung von ajax in wordpress. Alle ajax-request gemacht werden sollte, um
admin-ajax.php
.In Ihrer Vorlage-Datei:
In Ihrem js:
in Ihrem functions.php:
Lesen über
Ajax in Plugins
.Habe versucht deinen code und ich bekomme Fehler:
ReferenceError: sendmail is not defined - action:sendmail,
und es lädt die SeiteIch habe vergessen, ihn in Anführungszeichen einschließen. Die Aktualisierung meiner Antwort!
Lösung: zu ersetzen
data: data
mitdata: data + '&action=sendmail'
statt zu schreiben das js in template-Datei e.g;
<script type="text/javascript"> var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; </script>
wir könnenwp_localize_script()
InformationsquelleAutor RRikesh
Ich würde empfehlen, Sie verwenden system wie Registry für alle speichern "globalen" Werte in einem Ort.
Registry design pattern
Da ist mein kleines jQuery-plugin, falls dies für Sie interessant sein können. GitHub rep
Und bekommen Wert aus der Registrierung müssen Sie $.Registrierung.get('urlMail');
InformationsquelleAutor Sergei Khaletskiy
Habe ich gelöst mit dem code von RRikesh aber der Austausch
mit
Ich bearbeitet RRikesh Antwort, um es zu korrigieren, da es am höchsten bewertet. Ich denke, dies sollte natürlich in Erster Linie, da es die richtige Antwort und benötigt nur eine kleine änderung.
InformationsquelleAutor Fred K