【问题标题】:Update database table from javascript从 javascript 更新数据库表
【发布时间】:2013-06-20 01:59:09
【问题描述】:

我想在 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 中输入 alert("hi"),则仅当 'smthing' 为 true 时才会显示警报。

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

有什么帮助或指导吗?

【问题讨论】:

  • 让我们知道你可以使用 jquery。

标签: php javascript mysql ajax database


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-10
      相关资源
      最近更新 更多