我正在尝试将JavaScript变量作为PHP变量包含在PHP代码中,但我遇到了这样的问题。单击按钮时,将调用以下函数:
<script type="text/javascript">
function addTraining(leve, name, date)
{
var level_var = document.getElementById(leve);
var training_name_var = document.getElementById(name);
var training_date_var = document.getElementById(date);
<?php
$result = "INSERT INTO training(level, school_name, training_date) VALUES('level_var', 'training_name_var', 'training_date_var')" or die("Query not possible.");
?>
</script>
有可能吗?
答案 0 :(得分:37)
PHP在服务器端运行。 JavaScript在请求页面的用户的浏览器中运行客户端。在执行JavaScript时,无论如何都无法访问服务器上的PHP。请阅读此文章,详细了解client-side vs server-side coding。
简而言之,这是:
在您的情况下,PHP会将JS代码写入页面,因此可以在浏览器中呈现页面时执行。到那时,JS片段中的PHP部分不再存在。它已经在服务器上执行了。它创建了一个包含SQL查询字符串的变量$result
。你没有使用它,所以当页面发送回你的浏览器时,它已经消失了。在浏览器中呈现页面时,请查看源代码。你会看到你放置PHP代码的位置没有任何内容。
做你想做的事的唯一方法是:
包含要插入数据库的值。
答案 1 :(得分:22)
<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>
</script>
<?php echo 'php_'.$abc;?>
答案 2 :(得分:4)
您似乎混淆了客户端和服务器端代码。单击该按钮时,您需要将变量发送(发布,获取)到可以执行php的服务器。您可以提交页面或使用ajax调用来仅提交数据。 -don
答案 3 :(得分:3)
PHP在服务器上运行。它输出一些文本(通常)。然后由客户端解析。
在客户端解析期间和之后,JavaScript运行。在这个阶段,PHP脚本做任何事都为时已晚。
如果你想获得任何回复PHP的信息,你需要发一个新的HTTP请求并在其中包含数据(在查询字符串(GET数据)或消息体(POST数据)中。
您可以通过以下方式执行此操作:
FormElement.submit()
方法)您选择哪种选项,PHP基本相同。从$_GET
或$_POST
读取,运行数据库代码,然后将一些数据返回给客户端。
答案 4 :(得分:1)
在HTML网页上创建隐藏表单
以隐藏形式创建文本框或文本区域
在脚本中编写完所有代码后,将变量的最终值存储在该文本框中
在PHP中使用$ _REQUEST ['textbox name']行来访问JavaScript变量的值。
我希望这个技巧适合你。
答案 5 :(得分:0)
你可以做你想做的事,但不是那样的。您需要做的是从JavaScript发出AJAX请求回到服务器,其中单独的PHP脚本可以执行数据库操作。
答案 6 :(得分:0)
您可以采用以下所有值:
$abc = "<script>document.getElementByID('yourid').value</script>";