【问题标题】:AJAX variable processingAJAX变量处理
【发布时间】:2026-01-17 19:50:01
【问题描述】:

我需要创建一个 ajax 处理文件,这个 javascript 将变量 myGroupId 发送到其中,然后将其发送回我的 edit.php 文件,然后我可以从返回的文件中运行查询。

我没有使用 ajax 的经验,所以我需要知道处理文件应该如何看待被转换为 php 变量的 javascript 变量。我知道我需要创建另一个文件夹来发送 javascript 变量。

我只需要知道如何处理 ajax 处理文件(或任何你想调用的文件)。

这是我的 javascript:

 <script type="application/javascript">
    $(document).on("click", ".open-EditRow", function () {
    var myGroupId = $(this).data('id');
    $(".modal-body #groupId").val( myGroupId );

    // ajax call
    var url = "?groupId=" + encodeURIComponent(myGroupId);
    $.get(url, function(data){
    // do something here
    });
      });
  </script>

我将调用单独的文件 ajaxProcessing.php。现在,如果有人能告诉我该文件应该如何将 myGroupId 转换为 php 变量,我将不胜感激。

当它被发送回我的 edit.php 文件时,我应该能够将它引用为 $_GET['groupId']。

提前谢谢你。

【问题讨论】:

    标签: php mysql sql ajax


    【解决方案1】:

    改编自 jQuery 文档 (http://api.jquery.com/jQuery.get/):

    $.get(url, {GroupID: myGroupId})
    .done(function(data) {
      alert("Data Loaded: " + data);
    });
    

    但是,如果您要传递要由该脚本处理的数据,那么您确实应该使用 POST:

    $.post(url, {GroupID: myGroupId})
        .done(function(data) {
          alert("Data Loaded: " + data);
        });
    

    无论如何,您都可以使用 $variable = $_GET['GroupID']; (or $_POST['GroupID']) 在您的 ajax 处理文件中获取结果变量

    注意:为防止 SQL 注入,您必须通过 mysqli_real_escape 字符串或使用准备好的 mysqli 语句清理您的 $variable 更具体地说,不要创建像“Select * FROM table_name WHERE GroupID”这样的查询= $variable"(我知道我的语法在这里不正确,但你明白了)。

    另外,请确保您使用的是 mysqli 或 PDO - 不推荐使用 mysql。

    【讨论】:

    • 所以我将该代码添加到我的 javascript 中。但现在呢?当我单击该按钮时,它会弹出警报窗口,并在警报中显示来自 edit.php 的所有 html。我做错了什么?
    • 我实际上有一个类似的问题(*.com/questions/17973386/…)。基本上,您的 ajax 处理脚本输出的任何内容(html、php echo 语句等)都会传递回您的 .get() (或 .post() )函数。一种常见的解决方案是使用一个脚本专门用于接收 AJAX 调用并返回数据,而不输出 HTML - 即,该脚本仅回显您希望 AJAX 函数接收的数据。如果不了解您的整体结构的背景,很难说这对您来说是否可行。