2017-02-10 4 views
2

ich eine Seite home.php, die eine Schaltfläche ‚UPDATE‘ hat.
1. Onclick Funktion 'UPDATE' sollte eine Javascript-Funktion aufrufen 'write()'.
2. 'write()' Funktion Get 's der Benutzername und ein Wert - beide aus der Sitzung (PHP kommt hier zum Einsatz) und schreibe es in eine Datenbank. Hiereine PHP-Einfügung in die Datenbank durchführen, innerhalb JavaScript-Funktion

ist der Code: home.php

<html> 
<head> 
    <title> Sample Page </title> 
</head> 

<body> 

<script> 

function write(){ 
    <?php 

    include("dbConnect.php"); // connection works perfectly with other php files 
    // gets 'latestValue' from session variable 
    // gets 'username' from session variable 
    // updates 'patients' table with the latestValue, against the username 
    $query = "UPDATE patients SET lastLDNId = '$_SESSION[latestValue]' WHERE username='$_SESSION[username]'"; 
    $result = mysqli_query($con, $query); 

    ?> 
} 

</script> 

<input type="button" onclick="write()" value="UPDATE"> 

</body> 
</html> 

Wenn ich den Code ausführen und die Überprüfung durch das Element Inspizieren, ich bin die folgenden Fehler in der Funktion Schreib bekommen(), wie der Browser ich verwendet habe, interpretiert es

function writeLDN(lDNId){ 
    <br /> 
<b>Notice</b>: Undefined index: latestValue in  <b>C:\xampp\htdocs\MedPhil\home.php</b> on line <b>98</b><br /> 
} 

Wenn ich den pHP-Teil in der JavaScript-Funktion zu entfernen, wird der obige Fehler nicht erzeugt, was bedeutet, es ist nicht möglich pHP in die Art und Weise zu nutzen.

Kann mir jemand eine Lösung geben, die den ganzen Skriptinhalt mit php widerspiegelt?

Vielen Dank im Voraus

+0

Schauen Sie in AJAX. PHP & JS sind nicht austauschbar, und was Sie versuchen, wird nicht jede Arbeit – Darren

+1

Sie können ** JS und PHP auf diese Weise nicht mischen. ** alle von ** php werden auf dem Server ausgeführt, ** alle von ** JS werden auf dem Client ausgeführt. Es gibt * kein PHP übrig *, sobald es den Browser trifft. Lesen Sie einige Tutorials über ** AJAX ** –

+0

, wenn Seite in Ihrem Browser PHP für immer vorbei ist. – WeAreRight

Antwort

1

Es tut mir leid, aber Sie haben ein ernstes Missverständnis in Bezug auf Server-Seite Code vs Seite Client-Code. In Ihrem Technologie-Stack wird PHP nur auf dem Server ausgeführt, und nur einmal, wenn die Seite angefordert wird, wird JavaScript nur auf der Client-Seite und nur dort ausgeführt.

So kann Ihr Versuch, PHP von Javascript "aufzurufen", nicht funktionieren. Dies ist die Folge dieses verarbeitet wird:

  1. Der Server sieht Ihren <?php Tag Marker und führt den Code php da es mit dem Ergebnis des PHP-Code zu ersetzen, die in diesem Fall eine Fehlermeldung.
  2. Die Seite wird an den Browser (Client) geliefert
  3. Der Browser versucht, den JavaScript-Code auszuführen, der nur eine PHP-Fehlermeldung ist, mit anderen Worten Müll.
Verwandte Themen