【问题标题】:Update database with php triggered by ajax function用ajax函数触发的php更新数据库
【发布时间】:2016-03-05 16:54:03
【问题描述】:

我有一个引导按钮,这个:

<button type="button" id="turnOff" class="btn">Turn Off</button>

将 ajax 函数调用到“bootstrap.min.js”中。

这是ajax函数:

$('#turnOff').click(function () {
    $.ajax({ method: "POST",
            url: "/sys/class/buttonHandler.php", 
            data: {mode: 0 , id: 2 }
           });
});

此函数应将“模式”和“id”“插入”到包含以下内容的文件“buttonHandler.php”中:

<?php
include ('sys/class/class.global.php');
$mode = $_POST['mode'];
$id = $_POST['id'];
set($mode, $id);
?>

函数“set()”在另一个 php 中,“class.global.php”是唯一一个经过验证且有效的数据库访问的 php,如下:

function set($mode, $id)
{
    $result = mysql_query("UPDATE users SET test = '$mode' WHERE id = '$id'");
}

不幸的是,所有这些都没有更新任何内容,我无法理解为什么。

如果有人可以帮助我,那就太好了。 提前致谢。

【问题讨论】:

标签: javascript php jquery ajax twitter-bootstrap


【解决方案1】:

var_dump() 和错误报告应该可以缩小问题范围,但据我目前所见,问题在于您的包含。

您的脚本位于/sys/class/buttonHandler.php,相对于网络根目录。

在那个脚本中你这样做:

include ('sys/class/class.global.php');

因此该路径在服务器上评估为:

WEBROOT . '/sys/class/sys/class/class.global.php'

这可能不是你的想法。

使用require,您可能会收到相同的消息。

所以你很可能只需要:

require 'class.global.php';    // or include of course

【讨论】:

  • 我在其他文件中使用相同的包含,并且在任何地方都可以正常工作。我认为这是 Ajax 的问题,它没有将模式和 id 设置为 buttonHandler.php
  • 另外,我使用的是 microsoft WebMatrix,我直接使用实时版本,所以我没有控制台,我不知道用什么来调试代码,如果你有任何建议将不胜感激。谢谢
猜你喜欢
  • 2021-12-27
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 2020-09-22
  • 2012-10-19
  • 2014-03-29
  • 2014-12-15
  • 2013-12-22
相关资源
最近更新 更多