0

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

在第二种情况下,什么也没有发生。:/

有什么帮助或指导吗?

4

2 回答 2

4

您需要研究客户端代码和服务器端代码之间的区别。JavaScript 是客户端;在客户端计算机上执行。PHP是服务器端的;在服务器计算机上执行。两者不会以您尝试使用它们的方式混合。

在 JavaScript 被浏览器识别为 JavaScript 代码之前,您放入 JavaScript 代码的任何 PHP 代码都会在服务器上执行。JavaScript 中发生的任何逻辑对 PHP 都没有影响。它们应该被视为两种完全独立且不兼容的技术。PHP 仅用于生成 JavaScript 代码,而不是用于处理它。只有请求另一个 PHP 页面,客户端代码才能执行 PHP 代码。

您的第二个片段正在使用 AJAX 来尝试做到这一点;在后台对另一个 PHP 脚本发出全新的请求。根据您的评论,我猜您也没有非常彻底地研究 AJAX?一旦您掌握了整个客户端与服务器端问题的窍门,这根本不是一件难事。

于 2013-06-23T12:15:54.547 回答
1

Javascript是客户端脚本语言。因此它不能直接与数据库通信。

只有服务器端脚本语言可以通过其库函数与数据库交互。

因此,如果您需要根据 javascript 变量更新数据库中的数据,您可以使用 ajax 技术来完成。

通过 AJAX 代码片段,它可以在后台与服务器通信,而无需使用 XMLHttpRequest 对象重新加载网页。

请参考以下 URL 中提到的使用 ajax 技术与数据库通信的示例

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

于 2013-06-23T12:46:00.127 回答