【问题标题】:passing variable from Jquery to php using ajax使用ajax将变量从Jquery传递到php
【发布时间】:2021-07-09 21:39:20
【问题描述】:

我正在尝试使用 Ajax Post Request 将 jquery 变量传递给 PHP 文件,但请求没有响应(它不起作用)

请求代码:-

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script type="text/javascript">

function logger(btni){
  $('table [type="checkbox"]').each(function(i, chk) {
    if (chk.checked) {
      
      var cusId = $('table').find(".ip").html();  

      $.ajax({
    url: "somefile.php", // php file path
    method: "POST", // send data method
    data: {"total_price": cusId}, // data to send {name: value}
    success: function(data){
        alert(data);
    } // response of ajax
});

    }
  });
}
</script>

触发请求的按钮

            <button type="button" style="font-family:Modeseven-L3n5; margin-left:1rem;"class="btn btn-warning pull-left kl" id="btni"name="btni"Onclick="logger()" ><i class="fa fa-cloud-upload"></i>&nbsp;Upload Miner</button>&nbsp;&nbsp;

somefile.php

<?php
$total_price = $_POST["total_price"];
echo $total_price;
?>

控制台错误:

main.php:42 Uncaught TypeError: $.ajax is not a function
    at HTMLInputElement.<anonymous> (main.php:42)
    at Function.each (jquery-3.4.1.slim.min.js:2)
    at E.fn.init.each (jquery-3.4.1.slim.min.js:2)
    at logger (main.php:37)
    at HTMLButtonElement.onclick (VM948 main.php:488)

【问题讨论】:

  • @MarkusZeller 好的,请给我 CDN + 我也包含引导程序
  • 哦不!等待!! PHP 文件中有 JavaScript 代码。那是行不通的!你需要“回应”那个。您可以将其附在nowdoc 中。
  • @MarkusZeller PHP 文件中没有 javascript 代码
  • 有! main.php:42 Uncaught TypeError: $.ajax is not a function。您正在从 PHP 文件中调用 $.ajax。这是一个从浏览器调用的 JavaScript 函数。
  • @MarkusZeller 好的,我该怎么做才能让它工作?

标签: javascript php jquery ajax


【解决方案1】:

您的 jQuery 文件一定有问题。确保您使用的是常规版本的 jQuery 而不是 slim build,它不包含 Ajax 功能。您可以在错误中清楚地看到这一点:

at Function.each (jquery-3.4.1.slim.min.js:2)
at E.fn.init.each (jquery-3.4.1.slim.min.js:2)

如果您使用与引导程序一起使用的 jQuery,这很常见。

另外,请确保您的 PHP 文件中没有多个版本的 jQuery。如果您错误地将另一个 jQuery 文件放在其他位置,就会发生这种情况。

检查按钮和函数中的参数。我不确定你为什么在函数中使用btni。你根本不使用它。或者至少你应该添加:

btni.preventDefault();

【讨论】:

    【解决方案2】:
    • 首先,您缺少 jQuery 库文件(正如其他人所说)
    • 其次,您在函数记录器调用“查看触发调用的按钮”中错过了一个参数(为什么使用该参数:btni?)
    • 第三,你有一个循环,你在每个循环中调用 ajax,这不是一个好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      相关资源
      最近更新 更多