从javascript更新数据库表

时间:2013-06-23 12:09:28

标签: php javascript mysql ajax database

我想在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'为真时才会显示警告。

在第二种情况下没有任何反应。 :/

有任何帮助或指导吗?

2 个答案:

答案 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技术与数据库进行通信的示例

http://www.w3schools.com/php/php_ajax_database.asp