Javascript 一页多个java脚本错误
我有这段代码,它最初是有效的:Javascript 一页多个java脚本错误,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有这段代码,它最初是有效的: <th scope="row"> <select name="Date" required class="form-control" id="Date"> <option value="">Please Select Date</option> <?php $sql2="SELECT * FROM clinic.appoint GROUP BY date ORDER BY date AS
<th scope="row">
<select name="Date" required class="form-control" id="Date">
<option value="">Please Select Date</option>
<?php $sql2="SELECT * FROM clinic.appoint GROUP BY date ORDER BY date ASC";
$result2 = mysqli_query($con, $sql2) or die($sql2."<br/><br/>".mysql_error());
while($rows2=mysqli_fetch_array($result2)){?>
<option value="<?php echo $rows2['date'] ?>"><?php echo $rows2['date'] ?></option>
<?php } ?>
</select>
</th>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("#Date").change(function(){
var seldate =$(this).val();
display_data(seldate);
});
// This is the function...
function display_data(seldate) {
$("#scheduleDate").html(seldate);
var dataString = 'seldate='+ seldate;
$.ajax({
type: "POST",
url: "getdata.php",
data: dataString,
cache: false,
success: function(data) {
$("#Schedule").html(data);
}
});
}
// Now here is the real code for retaining your Date...
<?php
if (!empty($_GET['date'])) {
?>
display_data('<?php echo $_GET["date"]; ?>')
<?php
}
?>
document.getElementById('Date').value = '<?php echo @$_GET["date"]; ?>';
});
$(document).ready(function(){
$("#Name2").change(function(){
var selname =$(this).val();
display_name(selname);
});
// This is the function...
function display_name(selname) {
$("#scheduleName").html(selname);
var dataString = 'selname='+ selname;
$.ajax({
type: "POST",
url: "getdatabyname.php",
data: dataString,
cache: false,
success: function(data) {
$("#Schedule2").html(dataname);
}
});
}
// Now here is the real code for retaining your Date...
<?php
if (!empty($_GET['name'])) {
?>
display_name('<?php echo $_GET["name"]; ?>')
<?php
}
?>
document.getElementById('Name2').value = '<?php echo @$_GET["name"]; ?>';
});
</script>
请选择日期
$(文档).ready(函数(){
$(“#日期”)。更改(函数(){
var seldate=$(this.val();
显示_数据(seldate);
});
//这是函数。。。
功能显示数据(seldate){
$(“#scheduleDate”).html(seldate);
var dataString='seldate='+seldate;
$.ajax({
类型:“POST”,
url:“getdata.php”,
数据:dataString,
cache:false,
成功:功能(数据){
$(“#附表”).html(数据);
}
});
}
//现在这里是保留你约会的真正代码。。。
显示数据(“”)
document.getElementById('Date')。值='';
});
$(文档).ready(函数(){
$(“#名称2”).change(函数(){
var selname=$(this.val();
显示名称(selname);
});
//这是函数。。。
功能显示名称(selname){
$(“#scheduleName”).html(selname);
var dataString='selname='+selname;
$.ajax({
类型:“POST”,
url:“getdatabyname.php”,
数据:dataString,
cache:false,
成功:功能(数据){
$(“#Schedule2”).html(数据名);
}
});
}
//现在这里是保留你约会的真正代码。。。
显示名称(“”)
document.getElementById('Name2')。值=“”;
});
getdata.php:
<?php
require_once ('../include/global.php');
if($_POST['seldate']) {
$selDate = $_POST['seldate'];
$sql="SELECT * FROM clinic.appoint WHERE date='$selDate'";
$result = mysqli_query($con, $sql) or die($sql."<br/><br/>".mysql_error());
while($rows=mysqli_fetch_array($result)){
?>
<tr>
<td scope="row"><?php echo $rows['time'] ?></td>
<td scope="row"><?php echo $rows['name'] ?></td>
<td scope="row"><?php echo $rows['date'] ?></td>
<td scope="row"><form action='/clinic form/appoint/delete.php'=<?php echo $rows['id']; ?>' method="post">
<input type="hidden" name="id" value="<?php echo $rows['id']; ?>">
<input type="submit" name="submit1" value="Done">
</form>
</td>
</tr>
<?php } } ?>
正如评论中所建议的,您在代码中犯了错误
1.使用错误的选择器id绑定更改功能
$("#Name2").change(function(){
HTML是
<select name="Name" required class="form-control" id="Name">
应该是$(“#Schedule2”).html(数据)代码>
和PHP;归功于@j08691
更改$selDate
$selDate = $_POST['selname'];
至$selname
$selname = $_POST['selname'];
$sql="SELECT * FROM clinic.appoint WHERE name='$selname'";
正如您在问题中所说的,您的第一个Ajax调用工作正常,在修复上述错误之后,您在第二个Ajax调用方法中面临问题
HTML
PHP
我建议在两个Ajax调用success:function
中使用相同的id
选择器来显示数据
$("#Schedule").html(data);
这样,当您在select元素之间切换以显示数据时,它将替换第一次获取的数据
最后,我完全同意@Jared Smith关于混合PHP和JavaScript的说法,这真的不是好的做法 你在一个页面中使用2个javascript cdn链接?我不知道我是js新手,如果你能修复我的代码?好的,你只需要下拉列表中的名称,对吗?先生,我需要两个下拉列表,一个是日期,一个是名称,请看我现在编辑的代码。像这样混合PHP和javascript是一个非常糟糕的主意。正如你所发现的。推荐寻找更好的教程。谢谢,我会按照你在上一部分中所说的去做,谢谢你的代码。
$selDate = $_POST['selname'];
$selname = $_POST['selname'];
$sql="SELECT * FROM clinic.appoint WHERE name='$selname'";
<th>
<select name="Name" required class="form-control" id="Name">
<option value="">Please Select Name</option>
<?php $sql3="SELECT * FROM clinic.appoint GROUP BY name";
$result3 = mysqli_query($con, $sql3) or die($sql3."<br/><br/>".mysql_error());
while($rows3=mysqli_fetch_array($result3)){?>
<option value="<?php echo $rows3['name'] ?>"><?php echo $rows3['name'] ?></option>
<?php } ?>
</select>
</th>
$(document).ready(function(){
$("#Name").change(function(){
var selname =$(this).val();
display_name(selname);
});
// This is the function...
function display_name(selname) {
$("#scheduleName").html(selname);
var dataString = 'selname='+ selname;
$.ajax({
type: "POST",
url: "getdatabyname.php",
data: dataString,
cache: false,
success: function(data) {
$("#Schedule").html(data);
}
});
}
});
<?php
require_once ('../include/global.php');
if($_POST['selname']) {
$selname = $_POST['selname'];
$sql="SELECT * FROM clinic.appoint WHERE name='$selname'";
$result = mysqli_query($con, $sql) or die($sql."<br/><br/>".mysql_error());
while($rows=mysqli_fetch_array($result)){
?>
<tr>
<td scope="row"><?php echo $rows['time'] ?></td>
<td scope="row"><?php echo $rows['name'] ?></td>
<td scope="row"><?php echo $rows['date'] ?></td>
<td scope="row"><form action='/clinic form/appoint/delete.php'=<?php echo $rows['id']; ?>' method="post">
<input type="hidden" name="id" value="<?php echo $rows['id']; ?>">
<input type="submit" name="submit1" value="Done">
</form>
</td>
</tr>
<?php } } ?>
//For Date Result
$("#Schedule").html(data);
//For Name Result
$("#Schedule2").html(data);
$("#Schedule").html(data);