Ich habe eine JS-Datei. Ist es möglich, innerhalb der js-Datei eine PHP-Codierung durchzuführen? In meinem Header füge ich meine js-Datei wie folgt ein.

<script type="text/javascript" src="js/playthis.js"></script>

Jetzt in meiner jsfile:

function getURL(e) {
    alert(e+' javascript varibale');
    <?php $url; ?> = e;
    alert('<?php echo $url; ?>'+' php variable');
}

In meiner PHP-Datei

<?php $url = "www.google.com"; ?>
<a href="#" onclick="getURL('<?php print $url; ?>');" class="title">

Es funktioniert nicht. Stimmt irgendetwas nicht?

1
Vincent 5 Dez. 2013 im 06:58

5 Antworten

Beste Antwort

Sie müssen in einigen Browsern und in I.E ein neues Objekt für die Ajax-Transaktion mit dem Namen XMLHTTP REQUEST erstellen. Dies ist im Grunde genommen ActiveXObject;
und dieses Objekt gehört zum Fensterobjekt;
Der erste Schritt ist also:

if ( window.XMLHttpRequest ) {
    XHR = new XMLHttpRequest();
}
else if ( window.ActiveXObject ) {
    XHR = new ActiveXObject("Microsoft.XMLHTTP");   
}
else {
    alert("You Cant see because Your Browser Don't Support Ajax!!!\n Change Your Browser To A Modern One");
}

Jetzt haben Sie das richtige Objekt
Im nächsten Schritt gibt es einige Methoden für das XHR-Objekt zum Senden und Empfangen, die Sie kennen sollten:
1/ onreadystatechange
2/readyState
3/status
4/open
5/send
6/setRequestHeader

Öffnen Sie zuerst eine Verbindung mit open:

XHR.open("POST", url, true);

Wie Sie wissen, ist Post eine Methode zum Senden. Jetzt müssen Sie die URL festlegen, an die Informationen gesendet werden sollen. Wenn Sie beispielsweise die Variable an test.php senden möchten, lautet die URL {{X1} } ...
true bedeutet, dass die Anforderung asynchron gesendet wird. Als nächstes wird Ihr Anforderungsheader festgelegt, da Sie die Methode post verwenden. In der Methode get benötigen Sie dies nicht:

        XHR.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Als nächstes wird die Anfrage mit der Sendemethode in diesem Format send(name, value) gesendet:

XHR.send('value=' + value);

Die erste Zeichenfolge 'value =' ist der Index von $ _POST, den Sie in PHP erhalten. In Ihrem PHP-Code geben Sie dies also mit $_POST['value'] an, wenn Sie den Namen in PHP auf 'Name =' setzen Wenn Sie $_POST['name'] haben, achten Sie darauf, dass Sie in Ajax send param = nach dem Namen der Daten verwenden müssen, aber in PHP wird = nicht verwendet ... nachdem Sie die Anfrage gesendet haben; Es ist Zeit, die Antwort zu verwalten:

XHR.onreadystatechange = function() {
  if ( XHR.readyState == 4 && XHR.status == 200 ) {
     document.getElementById('your target element for show result').innerHTML == XHR.responseText;
  }
}

XHR.readyState == 4 und XHR.status == 200 bedeuten, dass alles in Ordnung ist.

Dies sind die Grundlagen von Ajax, wie Sie es sich gewünscht haben. Es gibt jedoch so viele Informationen für Ajax, und entweder können Sie die jQuery Ajax-Methode verwenden, die so einfach und flexibel ist. Aber wie Sie wollen, habe ich die Grundlagen für Sie beschrieben ...

1
Kiyarash 5 Dez. 2013 im 04:19

Sie können die .js-Datei in die .php-Datei ändern und mit Javascript und PHP zusammenarbeiten

Ändere das

<script type="text/javascript" src="js/playthis.js"></script>

Dazu

<script type="text/javascript" src="js/playthis.php"></script>
1
user3068436 5 Dez. 2013 im 03:16

Dies ist nicht erforderlich.
Wenn Sie die URL mit print $url im onclick-Attribut auf der PHP-Seite als Argument für die getURL-Funktion drucken, bedeutet dies, dass der Wert von $url an die Funktion gesendet wird mit dem Namen getURL in Ihrer js Datei ...
Also musst du schreiben:

 alert(e);

Und wenn Sie nur fragen, wie die anderen Freunde sagten, sollten Sie Ajax dafür verwenden ...
Wenn Sie einer Funktion eine Variable als Argument zuweisen, genau wie getURL(e), die Zeit, zu der Sie die Funktion aufrufen, getURL('print $url"), müssen Sie den Wert dieser Variablen festlegen, sodass das Programm den Wert festlegt Sie geben der Funktion die Standardvariable ... e = $url

1
Kiyarash 5 Dez. 2013 im 03:13

Nein, es ist nicht möglich, PHP-Code in der JS-Datei zu haben.

Sie können eine PHP-Datei mit $ .ajax aufrufen und diese Datei kann die Einstellung der erforderlichen Variablen übernehmen.

Hoffe das hilft.

1
Harsain 5 Dez. 2013 im 03:04

Es gibt einige Möglichkeiten, damit umzugehen.

1 - Lassen Sie .js-Dateien von PHP analysieren. Sie müssen dazu Ihre Webserver-Konfiguration ändern.
2 - Verwenden Sie AJAX, um mit PHP zu interagieren.
3 - Lassen Sie PHP ein zusätzliches JS-Snippet im Body-Onload-Ereignis rendern, das diesen JS-Parameter festlegt (aber die Bibliothek weiterhin als separate Datei hat).

1
Mark 5 Dez. 2013 im 03:09