2017-02-10 56 views
2

我有一个页面home.php它有一个按钮'UPDATE'。
1. onclick函数'UPDATE'应该调用一个javascript函数'write()'。
2.'write()'函数get的用户名和值 - 来自会话(php在此处使用)并将其写入数据库。在javascript函数中执行php插入到数据库

下面是代码: 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> 

,当我运行的代码,并通过检查元素检查,我得到的功能写(以下错误),因为浏览器其解释

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 /> 
} 

当我删除javascript函数内部PHP的部分,不产生上述错误,这意味着它不可能在我用的方式使用PHP。

任何人都可以给我一个解决方案,而不是使用PHP回显整个脚本内容?

在此先感谢

+0

研究AJAX。 PHP和JS是不可互换的,你试图做的事不会每个工作 – Darren

+1

你**不能**这样混合JS和PHP。 **所有** php都在服务器上执行,**所有** JS都在客户端执行。有*没有PHP左*一旦它击中浏览器。阅读一些关于** AJAX ** –

+0

的教程,当页面到达您的浏览器时,php将永远消失。 – WeAreRight

回答

1

我很抱歉,但你对服务器端代码VS客户端代码一个严重的误解。在您的技术堆栈中,PHP只在服务器上执行,并且只在请求页面时执行一次,JavaScript仅在客户端执行,并且仅在那里执行。

所以你尝试从JavaScript调用php无法正常工作。 这是此得到处理顺序:

  1. 服务器可以看到您的<?php标记标签,并执行与PHP代码,在这种情况下是错误消息的结果有取代它的PHP代码。
  2. 页面被传送到浏览器(客户端)
  3. 浏览器试图执行JavaScript代码,这只是一个PHP错误消息,换句话说就是垃圾。