I try to get data from mysql database using ajax. I adapted my old ajax code that works OK in different project, but It does not work here.
I use javascript function as bellow:
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);
The test.php file is just for testing and it looks like this:
<?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;
}
?>
After changing form controls the function is called and then, I got an error message in browser console saying: TypeError: nazwaMenu.val is not a function
Any hints on what the problem might be, please?
nazwaMenu = text1.value.trim();you don't need to callval().combo1.val()should becombo1.value.val()is a jQuery method, butcombo1is a DOM element.getElementByIdwith jQuery methods like$("#S0_dzienMenu"). Pick one or the other and use them consistently.