我尝试使用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/