2

好的,我做了第一个成功的 SQL 查询,在 PHP 中生成了一个下拉框!(是的,我还是个大菜鸟)

所以我的下一个问题......

如果我点击选择按钮,我必须创建一个新页面还是可以根据提交的第一个列表在同一页面上生成第二个下拉框?

我看到了这个:对类似问题的回应

但我仍然不确定形式行动和方法。保持自我?我需要/应该使用 2 个单独的表格吗?(我还没有准备好处理 AJAX 并且还没有准备好处理 Java,所以请不要考虑这些选项 :))或者我应该只是传递到第二个文件。

如果可以,你能解释一下每个表单中使用的表单动作和方法吗?

4

2 回答 2

1

我更喜欢通过 Ajax 和 JQuery 来实现,如下所示:

function getClassList(elem)
{
    var contentRequests, contentarr;  // The variable that makes Ajax possible!
    try
    {
// Opera 8.0+, Firefox, Safari
        contentRequests = new XMLHttpRequest();
    } 
    catch (e)
    {
// Internet Explorer Browsers
        try
        {
            contentRequests = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) 
        {
            try
            {
                contentRequests = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e)
            {
// Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
// Create a function that will receive data sent from the server
        contentRequests.onreadystatechange = function()
        {
            if(contentRequests.readyState == 4&& contentRequests.status==200)
            {


                document.getElementById(elem).innerHTML = contentRequests.responseText;

            }
        }

        var urltofetch="index.php?methodname=getclasses"

        contentRequests.open("GET", urltofetch, true);
        contentRequests.send(null);


}


function getStudentList(classelem,elem)
{

   var classToFetch =  classelem + " option:selected";

   var contentRequests, contentarr;  // The variable that makes Ajax possible!
    try
    {
// Opera 8.0+, Firefox, Safari
        contentRequests = new XMLHttpRequest();
    } 
    catch (e)
    {
// Internet Explorer Browsers
        try
        {
            contentRequests = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch (e) 
        {
            try
            {
                contentRequests = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e)
            {
// Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
// Create a function that will receive data sent from the server
        contentRequests.onreadystatechange = function()
        {
            if(contentRequests.readyState == 4&& contentRequests.status==200)
            {


                document.getElementById(elem).innerHTML = contentRequests.responseText;

            }
        }
        var classname = $(classToFetch).text();
        alert(classname);
        var urltofetch="index.php?methodname=getstudents&cname="+classname

        contentRequests.open("GET", urltofetch, true);
        contentRequests.send(null);

}
于 2013-03-31T16:25:25.610 回答
1

如果您还没有准备好使用 AJAX 或 Javascript,那么您需要添加第二个 PHP 页面,该页面将处理用户从第一个下拉框中的选择并显示适当的第二个下拉列表。

如果您对这一切都不熟悉,那么我建议您一开始就保持简单!提交表单并显示新页面是最基本的方式。

因此,在您的第一页 HTML 中,您需要...

<form action="second_page.php" method="post">
<select name="selection"> ... your drop-down code goes here ... </select>
<button type="submit">Next</button>
</form>

然后在 second_page.php 你需要...

$selection = $_POST['selection']; // The variable $selection holds the user's selection

然后,您可以根据 $selection 的值输出第二页。

于 2013-03-31T16:30:29.527 回答