首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的函数没有在ajax中发送变量?

为什么我的函数没有在ajax中发送变量?
EN

Stack Overflow用户
提问于 2018-10-31 06:06:52
回答 5查看 67关注 0票数 1

我在php中有一个代码,它生成一个按钮并在另一个文件中有一个java脚本函数,但是它不能工作,我应该发送值$ id来更新数据库php文件,但是它什么也不做。

索引代码:

代码语言:javascript
运行
复制
<button type="button" class="btn btn-primary" onclick="antenderOrden($folio)">Atender</button>

javascript代码:

代码语言:javascript
运行
复制
  function atenderOrden(folio) {
    $.ajax({
      type: 'post',
      url: '../panel/data.php',
      data: 'folio=' + folio + 'status=A',
      success: function (data) {
          location.reload();
      }
    });
  }

php代码:

代码语言:javascript
运行
复制
//Actualiza el estatus de un registro de orden en la base de datos
if (isset($_POST['folio']) && isset($_POST['status'])) {
    $obj = new Orden();
    $resp = $obj->updateOrden($_POST['folio'], $_POST['status']);
    echo $resp;
    }
    class Orden{
    public function updateOrden($folio, $status) {
        //$conn = new Conexion();
        $conn->conectar();
        $query = "UPDATE c_ordenes SET statuso = '$status' WHERE folio = '$folio'";
        try {
            $resp = $conn->consulta($query);
            $resp = "OK";
        } catch (Exception $ex) {
            $resp = $ex;
        }
        $conn->cerrar();
        return $resp;
    }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-10-31 06:13:09

您需要添加&以加入最后一个键=>值。

代码语言:javascript
运行
复制
data: 'folio=' + folio + '&status=A',

根据我的注释,在onclick中传递的变量应该用引号包装,否则javascript会将其视为javascript变量,并在控制台中返回一个未定义的变量错误。

代码语言:javascript
运行
复制
<button type="button" class="btn btn-primary" onclick="antenderOrden('<?php echo $folio; ?>')">Atender</button>

此外,您还应该使用准备好的语句来防止SQL注入攻击。

快速开始使用准备好的语句

票数 0
EN

Stack Overflow用户

发布于 2018-10-31 06:10:14

您需要将它作为对象发送到ajax:

代码语言:javascript
运行
复制
...
data: {'folio': folio,'status':'A'},
...

并更新按钮,将php变量回显到html中。

代码语言:javascript
运行
复制
<button type="button" class="btn btn-primary" onclick="antenderOrden('<?=$folio;?>')">Atender</button>
票数 0
EN

Stack Overflow用户

发布于 2018-10-31 06:40:11

javascript代码

代码语言:javascript
运行
复制
function atenderOrden(folio) {
$.ajax({
  type: 'post',
  url: '../panel/data.php',
  data: {
         folio : folio ,
          status : 'A'
        },
  success: function (data) 
  {
      location.reload();
  }
});
}

索引码

代码语言:javascript
运行
复制
<button type="button" class="btn btn-primary" onclick="antenderOrden(<?php echo $folio;?>)">Atender</button>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53077240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档