【问题标题】:How to include a dependent-dropdown list in a form tag?如何在表单标签中包含依赖下拉列表?
【发布时间】:2019-01-28 21:23:54
【问题描述】:

我有一个工作的依赖下拉列表,当它没有放在表单标签内时,它可以正常工作。一旦我将它包含在表单标签中,它就会停止工作。如何在表单标签中包含此代码?

我只是尝试在不使用任何表单标签的情况下运行代码。它工作得很好。为了将值传递到下一页,我使用了表单标签,这时我得到一个空白响应(下拉列表未加载)。

index.php

<?php
require_once("dbcontroller.php");
$query ="SELECT * FROM flat";
$results = mysqli_query($conn,$query); 
?>
<html>
<head>
<title></title>

<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
function floor(val) {
    $.ajax({
    type: "POST",
    url: "get_info.php",
    data:'floor='+val,
    success: function(data){
        $("#floor").html(data);
    }
    });
}

function flatno(val1) {
    $.ajax({
    type: "POST",
    url: "get_info.php",
    data:'flatno='+val1,
    success: function(data){
        $("#flatno").html(data);
    }
    });
}


</script>
</head>
<body>


<form method="post" action="a.php"><br>


Select Wing:
<select name="wing" onChange="floor(this.value);">
<option value="">---------</option>
<?php
foreach($results as $row) {
?>
<option value="<?php echo $row["wing"]; ?>"><?php echo $row["wing"]; ?>                
</option>
<?php
}
?>
</select>

<br><br>
Select Floor:
<select name="floor" id="floor" onChange="flatno(this.value);">
<option value="">---------</option>
</select>


<br><br>
Select Flat No:
<select name="flatno" id="flatno">
<option value="">---------</option>
</select>

<input type="submit">

</form>

</body>
</html>    

get_info.php

<?php
require_once("dbcontroller.php");

if(!empty($_POST["floor"])) {
$query ="SELECT * FROM flat WHERE wing = '".$_POST["floor"]."'";
$results = mysqli_query($conn,$query); 
?>
    <option value="">Select Floor</option>
<?php
    foreach($results as $row) {
?>
    <option value="<?php echo $row["floor"]; ?>"><?php echo $row["floor"];         
?></option>
<?php
    }
}
?>

<?php
if(!empty($_POST["flatno"])) {
    $query ="SELECT * FROM flat WHERE floor = '".$_POST["flatno"]."'";
    $results = mysqli_query($conn,$query);
?>
    <option value="">Select Flat no</option>
<?php
    foreach($results as $row) {
?>
    <option value="<?php echo $row["flatno"]; ?>"><?php echo     
$row["flatno"]; ?></option>
<?php
    }
}
?>

一个.php

<?php

include_once 'dbcontroller.php';

$wing =mysqli_real_escape_string($conn,$_POST['wing']);  
$floor =mysqli_real_escape_string($conn,$_POST['floor']);  
$flatno=mysqli_real_escape_string($conn,$_POST['flatno']); 

echo "<h2>Flat No : " . $flatno . "</h2>";
echo "<h2>Email : " . $floor . "</h2>";
echo "<h2>Email : " . $wing . "</h2>";
?>

我希望所有 3 个下拉列表都能正常工作,但只有第一个下拉列表加载,其他 2 个为空白。

【问题讨论】:

  • 您的操作页面提到了 a.php 页面并且您在 get_info.php 上调用了查询?
  • 您的表单操作是a.php,但您的php 代码在get_info.php。尝试改变它
  • @MD.JubairMizan get_info.php 包含动态加载下拉列表的代码,而 a.php 包含提交表单后工作的代码。
  • @OmerTekbiyik 你到底想让我改变什么?

标签: javascript php ajax html forms


【解决方案1】:

您必须为您的函数使用不同的名称,例如 floor1() 和 flatno1(),因为姓氏( floor() 和 flatno() )用于其他元素的 id 名称,

在 html 代码中:

将 onchange="floor()" 更改为 onchange="floor1()"

将 onchange="flatno()" 更改为 onchange="flatno1()"

在 javascript 代码中:

将“function floor()”改为“function floor1()

将“function flatno()”改为“function flatno1()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-17
    • 2021-07-07
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多