javascript - 使用javascript和ajax从mysql获取数据时出错

标签 javascript php ajax

我尝试使用ajax从mysql数据库获取数据。我改编了我的旧ajax代码,它在不同的项目中工作正常,但在这里不起作用。

我使用 JavaScript 函数如下:

var text1 = document.getElementById('ST0_nazwaMenu');
var combo1 = document.getElementById('S0_dzienMenu');
var combo2 = document.getElementById('S0_posilekMenu');

function zaladujSzczegoly() {
        if (text1.value.trim() != "" && combo1.value.trim() != "" && combo2.value.trim() != "") {

                var nazwaMenu = text1.value.trim();
                var dzienMenu = combo1.value.trim();
                var posilekMenu = combo2.value.trim();

                $.ajax({
                        method: "POST",
                        url: "test.php",
                        data: {"jadlospis": nazwaMenu.val(), "dzien": combo1.val(), "posilek": combo2.val()},
                }).done(function( data ) {
                        var result = $.parseJSON(data);
                });


                alert(text1.value);

        }
}

text1.addEventListener('change', zaladujSzczegoly, false);
combo1.addEventListener('change', zaladujSzczegoly, false);
combo2.addEventListener('change', zaladujSzczegoly, false);

test.php 文件仅用于测试,如下所示:

<?php

include 'db_connection.php';
include 'functions.php';


error_log("-->test.php:"."\n", 3, "/var/www/html/jadlospis/errors.log");

if (isset($_POST['jadlospis'],$_POST['dzien'],$_POST['posilek'])){

        error_log($_POST['jadlospis']."\n", 3, "/var/www/html/jadlospis/errors.log");

        $SQL = "SELECT COUNT(*) AS Konta FROM users WHERE jadlospis='".$_POST['jadlospis']."'";

        $result = mysqli_query($conn,$SQL ) or die(mysqli_error($this->dblink));
        while($row = mysqli_fetch_array($result))
        {
                $T_Count=$row['Konta'];
        }

        mysqli_close($conn);
        echo $result;
}

?>

更改表单控件后,调用该函数,然后,我在浏览器控制台中收到一条错误消息:TypeError: nazwaMenu.val is not a function

请问有什么问题可能出现的提示吗?

最佳答案

您已经将 text1 的值提取到变量 nazwaMenu 中,因此无需调用 nazwaMenu.val()
您可以使用 text1.value.trim()$("#ST0_nazwaMenu").val().trim() 或仅使用包含值 nazwaMenu 的变量

因为.val()不能在值或DOM上调用,所以我们的.val()对象需要是JQuery对象

替换你的这一行

data: {"jadlospis": nazwaMenu.val(), "dzien": combo1.val(), "posilek": combo2.val()},

data: {"jadlospis": nazwaMenu, "dzien": dzienMenu , "posilek": posilekMenu }

你应该没问题吧~

关于javascript - 使用javascript和ajax从mysql获取数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58999081/

相关文章:

javascript - 通过 ajax 传递数据 - 参数字典包含参数的空条目

php - 如何防止 PHP 中的 SQL 注入(inject)?

javascript - 如何结合 jquery 响应与 php

php - 使用 php 创建和写入文件

php - 从 mysql 填充第二个下拉菜单

javascript - 如何创建动态ajax提交表单

javascript - 如何在单独的文件中管理html逻辑

javascript - 无需 secret 即可获取 github OAuth token

php - 如何将 php ajax 文本框值插入到 mysql 数据库表中?

javascript - 在ie中为html5播放器设置 "src"属性