【问题标题】:How to pass javascript variable to php using ajax如何使用ajax将javascript变量传递给php
【发布时间】:2013-12-01 18:22:14
【问题描述】:

我正在尝试将单击按钮时获得的 javascript 变量传递给 php,然后运行 ​​mysql 查询。我的代码:

function ajaxCall(nodeID) {
 $.ajax({
 type: "POST",
 url: "tree.php",
 data: {activeNodeID : nodeID}, 
 success: function(data) { 
 alert("Success!");
  }
 }
);
}

function onButtonClick(e, data) {
 switch (data.name) {
  case "add":
   break;
  case "edit":
   break;
  case "delete":
   nodeid = data.context.id;
   ajaxCall(nodeid);
   //query
   break;                                   
   }
}


<?php
      if (isset($_POST['activeNodeID'])) {
       $nodeid = $_POST['activeNodeID'];
      }
      else {
       $nodeid = 0;
      }
      ?>

我以前没有这样做过,所以我不确定为什么这不起作用。有什么建议么? 编辑:也许我没有很好地解释自己。我意识到 php 是服务器端,而 javascript 是客户端。我有一个使用 javascript 显示的组织结构图,所有信息都保存在我的数据库中。我需要做的是:当单击其中一个 javascript 按钮(编辑、删除、添加)时,获取活动节点的 ID 并将其用作 php 中的变量来运行查询。例如,删除数据库中的行。最好的方法是什么?

【问题讨论】:

  • 那是你的 PHP 还是 tree.php 文件中的?
  • PHP 代码在您加载包含 JavaScript 代码的页面时执行,而不是在进行 Ajax 调用时执行(如果这是您的意图)。查看生成的 JS 代码。你会看到success 回调的内容是空的。请说明您要达到的目标,以便我们更好地帮助您。

标签: javascript php ajax variables


【解决方案1】:

这里有点混乱,success 值存储了一个回调,当 Ajax 调用成功时会调用该回调。举个简单的例子,假设你有一个这样的 Ajax 调用:

function ajaxCall(nodeID) {
    $.ajax({
      type: "POST",
      url: "tree.php",
      data: {activeNodeID : nodeID}, 
      success: function(data) {
        console.log(data.my_message); 
      }
    });

这会调用一个名为tree.php 的PHP 页面。在此页面中,您进行一些计算,然后返回一个值,在本例中为 JSON。所以页面看起来像这样(请注意,我保持简单,您应该始终验证输入值):

$v = $_REQUEST['activeNodeID'];
$to_return = "the value sent is: " . $v;
return json_encode(array('my_message' => $to_return));

这个简单的 PHP 页面以 JSON 形式返回该字符串。在您的 javascript 中,在指定的回调(即 success)中,您将获得 data 作为包含 PHP 的 $to_return 值的对象。你写的东西没有什么意义,因为 PHP 是一种服务器语言,不能像 JavaScript 那样从浏览器中处理。

【讨论】:

  • 很好的答案,但您确实应该正确使用句子,而不是用, 分隔所有内容。它使文本更易于阅读。我编辑了它。
  • 你说得对,Felix,感谢您的更正,我刚刚切换到美式键盘布局,我很难适应它,再次感谢。
  • :D 键盘布局的变化很难:)
猜你喜欢
  • 2011-09-02
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2019-07-07
  • 2014-04-15
相关资源
最近更新 更多