Mysql 从上一个下拉列表填充下拉列表-使用AJAX、PDO、jQuery
我是使用PHP和mySQL的新手,所以我完全知道我可能犯了一些非常“noob”的错误。然而,当我从mySQL中填充第二个下拉列表时,我真的被卡住了,因为之前的下拉列表中已经选择了一个选项 我尝试过所有的论坛,也尝试过示例脚本,但是每次,尽管在互联网上尝试了不同的示例,我还是会继续出错。所以我希望有人能帮助我 我正在尝试建立一个小型电影网站,有人可以选择一部电影,然后选择一个日期和时间等。我使用mySQL填充下拉列表,但当我想填充第二个下拉列表时,会被卡住,因为它依赖于第一个选择选项Mysql 从上一个下拉列表填充下拉列表-使用AJAX、PDO、jQuery,mysql,Mysql,我是使用PHP和mySQL的新手,所以我完全知道我可能犯了一些非常“noob”的错误。然而,当我从mySQL中填充第二个下拉列表时,我真的被卡住了,因为之前的下拉列表中已经选择了一个选项 我尝试过所有的论坛,也尝试过示例脚本,但是每次,尽管在互联网上尝试了不同的示例,我还是会继续出错。所以我希望有人能帮助我 我正在尝试建立一个小型电影网站,有人可以选择一部电影,然后选择一个日期和时间等。我使用mySQL填充下拉列表,但当我想填充第二个下拉列表时,会被卡住,因为它依赖于第一个选择选项 我尝试过使用
我尝试过使用AJAX,但没有效果。我很感激我可能犯了一些新手错误,可能会混淆变量,但如果有人能说明我错在哪里,我将非常感激 你的问题我以前在选择国家和城市时遇到过 这里有一个很好的教程来做这个技巧
您在getDates.php上有一个小错误
<?php
require("Connect.php");
$name = (!empty($_REQUEST["name"])) ? trim($_REQUEST["name"]) : "");
if (!empty($name)) {
$sql = "SELECT Dates FROM Cinema WHERE name = $name";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue("tn", trim($name));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo($ex->getMessage());
}
if (count($results) > 0) {
?>
<label>Dates:
<select name="Dates">
<?php foreach ($results as $rs) { ?>
<option value="<?php echo $rs["Dates"]; ?></option>
<?php } ?>
</select>
</label>
<?php
}
}
?>
请尝试并反馈index.php
<?php
require Connect.php;
?>
<!DOCTYPE html>
<html>
<head>
<title>Films for Family!!</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
function Datesforfilms(sel) {
var name = sel.options[sel.selectedIndex].value;
$("#output1").html("");
$.ajax({
type: "POST",
url: "getDates.php",
data: "name=" + name,
cache: false,
success: function(html) {
$("#output1").html(html);;
}
});
}
</script>
</head>
<body>
<div class="welcome">
<h1>Films for Family</h1>
</div>
<div class="SelectFilm">
<h3> Step 1: </h3>
<p> *Select a film*</p>
<form name="Filmform" method="get">
<select name="Select a Film" onChange="Datesforfilms(this);">
<option value="0">Select a Film</option>
<?php
$sql = "SELECT name FROM company";
$handle = $conn->prepare($sql);
$handle->execute(array($sql));
$res = $handle->fetchAll();
foreach($res as $movie) { ?>
<option value="<?=$movie['name']?>"><?=$movie['name']?></option>
<?php } ?>
</select>
<div id="output1"></div>
</form>
</div>
</body>
</html>
getDates.php
<?php
require("Connect.php");
$name = (!empty($_POST["name"]) ? trim($_POST["name"]) : "");
if (!empty($name)) {
$sql = "SELECT Dates FROM Cinema WHERE name = $name";
try {
$stmt = $DB->prepare($sql);
$stmt->bindValue("tn", trim($name));
$stmt->execute();
$results = $stmt->fetchAll();
} catch (Exception $ex) {
echo($ex->getMessage());
}
if (count($results) > 0) {
?>
<label>Dates:
<select name="Dates">
<?php foreach ($results as $rs) { ?>
<option value="<?php echo $rs["Dates"]; ?>"><?php echo $rs["Dates"]; ?></option>
<?php } ?>
</select>
</label>
<? } ?>
<? } ?>
第一个代码块末尾的$results变量来自哪里?这可能是$res的错别字吗?感谢您的回复-我在当天早些时候尝试了这个示例,但有些代码现在已被弃用,因此我不确定从何处开始..:谢谢你的帮助-它在最后一行读到了意想不到的文件结尾-你知道它是什么吗?所以看起来getDates的php脚本现在可以工作了。但是,我无法使用html填充结果。我在这里迷路了,非常感谢你的帮助!顺便说一句,你应该对SQL注入和脚本注入保持警惕——如果我知道你,我会使用MVC,比如CakePHP,这会让你的生活更轻松谢谢法赫德的帮助!我又试过了,但还是没有成功。它不断抛出以下错误>>未找到列:“where子句'>语法错误或访问冲突中的1054未知列“ELF”:1064您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“傻瓜”附近使用的正确语法。为什么这里有三个答案?你应该编辑其中一个以包含你想要展示的所有信息,并删除其他信息。2,使之成为3@JayBlanchard@JayBlanchard-我又学到了一些东西:-第一个答案是编辑他的代码,第二个是我的代码