我想在javascript中的条件后更新我的数据库。我现在做的是:
<a href="#" onclick="hello()">Update me</a>
<srcipt>
function hello(smthing)
{
if(smthing == true)
{
<?php //Update database table ?>
}
}
<script>
我还尝试根据w3schools(http://www.w3schools.com/ajax/ajax_example.asp)中的示例更新我的表格:
<script>
function hello(smthing)
{
if(smthing==true)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","db_update.php",true);
xmlhttp.send();
}
}
</script>
在第一种情况下,即使变量smthing = false(但如果我在if中输入警告(“hi”),它也会更新我的表格,仅当'smthing'为真时才会显示警告。
在第二种情况下没有任何反应。 :/
有任何帮助或指导吗?
答案 0 :(得分:4)
您需要研究客户端和服务器端代码之间的区别。 JavaScript是客户端的;在客户端计算机上执行。 PHP是服务器端;在服务器计算机上执行。这两者不会混合您尝试使用它们的方式。
在JavaScript被代码识别为JavaScript代码之前,您在JavaScript服务器上执行的任何PHP代码都会被执行。无论JavaScript中发生什么逻辑都不会对PHP产生影响。它们应被视为两种完全独立且不兼容的技术。 PHP只用于生成JavaScript代码,而不是使用它。只有通过请求另一个PHP页面,客户端代码才能执行PHP代码。
你的第二个片段是使用AJAX尝试做到这一点;在后台为另一个PHP脚本创建一个全新的请求。根据你的评论,我猜你还没有彻底研究过AJAX?一旦你掌握了整个客户端与服务器端问题的关系,那么弄清楚这一点并不困难。
答案 1 :(得分:1)
Javascript是客户端脚本语言。因此无法直接与数据库通信。
只有服务器端脚本语言可以通过其库函数与数据库进行交互。
因此,如果您需要在javascript变量的条件下更新数据库中的数据,您可以使用ajax技术来完成它。
通过AJAX代码片段,它可以在后台与服务器通信,而无需使用XMLHttpRequest对象重新加载网页。
请参阅以下URL中提到的使用ajax技术与数据库进行通信的示例