Javascript 代码使用静态PHP值,但不是动态变量
我正在尝试创建一个网站,在这里我创建了一个由SQL查询填充的下拉菜单,根据我所做的选择,将出现不同类型的下拉菜单 我现在在我的第二个下拉菜单上,如果我在其中硬编码某个值,它就可以工作,但是如果我尝试使用基于用户选择的动态值,它就不起作用 因为我需要弄清楚用户在选择什么,并在此基础上进行新的动态选择,所以我尝试使用javascript获取基于用户的信息。因为我对这个还很陌生,所以我尝试将信息保存到cookie中,然后用PHP读取它来创建一个新的列表,但这并没有按照我的预期工作。它没有刷新就没有更新页面,所以我继续搜索并找到了AJAX 有了它,我能够获得用户选择的下拉列表信息并将其发送回PHP,我需要这样做,因为我需要根据用户的选择运行一个新的SQL查询。这就是我完全没有想法的地方 当我使用AJAX并查看浏览器的控制台时,控制台中有一个新的下拉菜单,但它只是在网页$varClass=$\u POST['valitudKlass']上显示为一个空白下拉菜单;但是如果我手动设置$varClass,那么脚本工作得很好,并生成列表 这是我的功能,而不是每当用户在第一个下拉菜单中选择某个内容时运行。它应该获取当前所选下拉项的值并将其发送到pass.phpJavascript 代码使用静态PHP值,但不是动态变量,javascript,php,ajax,Javascript,Php,Ajax,我正在尝试创建一个网站,在这里我创建了一个由SQL查询填充的下拉菜单,根据我所做的选择,将出现不同类型的下拉菜单 我现在在我的第二个下拉菜单上,如果我在其中硬编码某个值,它就可以工作,但是如果我尝试使用基于用户选择的动态值,它就不起作用 因为我需要弄清楚用户在选择什么,并在此基础上进行新的动态选择,所以我尝试使用javascript获取基于用户的信息。因为我对这个还很陌生,所以我尝试将信息保存到cookie中,然后用PHP读取它来创建一个新的列表,但这并没有按照我的预期工作。它没有刷新就没有更新
function valiKlass() {
var valitudKlass = $("#klass option:selected").text();
$.ajax({
type: "POST",
url: 'pass.php',
data: {valitudKlass : valitudKlass},
success:(function(data){
console.log(data);
})
});
$("#valiNimi").load("pass.php");
}
这是pass.php,它应该接收有关用户所选内容的信息,然后在此基础上发送一个新的SQL查询并生成一个新的下拉列表:
<?php
require_once "config.php";
echo "Vali nimi;";
echo "<select name='nimi' id='nimi'>";
$varClass = $_POST['valitudKlass'];
$sql = "SELECT DISTINCT firstname FROM `students` WHERE class = '$varClass'";
$result = mysqli_query($connection,$sql);
while ($row = mysqli_fetch_array($result)){
echo "<option value ='" . $row['firstname'] . "'>" . $row['firstname'] . "</option>";
}
echo "</select>";
?>
我过去只使用C语言编写代码,所以我对PHP和javascript都是全新的,几天前我学习了这两种语言是为了帮助我认识的一些人,但这个问题正在慢慢困扰着我。我想克服它,所以我感谢您能给我的任何帮助。您的$。ajax调用会将值发送到服务器,而load调用不会。
只需将$.ajax的结果放在页面中并删除load调用
在回显变量之前,在变量中构建整个select
require_once "config.php";
$sendback = 'Vali nimi;<select name="nimi" id="nimi">';
$varClass = $_POST['valitudKlass'];
$sql = "SELECT DISTINCT firstname FROM `students` WHERE class = '$varClass'";
$result = mysqli_query($connection,$sql);
while ($row = mysqli_fetch_array($result)){
$sendback .= "<option value ='" . $row['firstname'] . "'>" . $row['firstname'] . "</option>";
}
echo $sendback . '</select>';
在pass.php中,将select作为单个变量构建,并在select完全构建后进行回显。如果您查看浏览器控制台,您可能会看到调用pass.php返回的所有信息都是Vali nimi。此外,如果您是php新手,您肯定不想浪费时间学习mysqli。看看PHP PDO。
require_once "config.php";
$sendback = 'Vali nimi;<select name="nimi" id="nimi">';
$varClass = $_POST['valitudKlass'];
$sql = "SELECT DISTINCT firstname FROM `students` WHERE class = '$varClass'";
$result = mysqli_query($connection,$sql);
while ($row = mysqli_fetch_array($result)){
$sendback .= "<option value ='" . $row['firstname'] . "'>" . $row['firstname'] . "</option>";
}
echo $sendback . '</select>';