2

OK、PHP でドロップダウン ボックスを生成する最初の SQL クエリを成功させました! (はい、私はまだ大初心者です)

では、次の質問は....

選択ボタンを押した場合、新しいページを作成する必要がありますか、または最初のリストの送信に基づいて同じページに 2 番目のドロップダウン ボックスを生成することはできますか?

私はこれを見ました:同様の質問への回答

しかし、私はまだフォームのアクションと方法について確信が持てません.Keep it Self? 2 つの別々のフォームを使用する必要がありますか? (私はAJAXに取り組む準備ができておらず、Javaに取り組む準備ができていないので、それらのオプションをテーブルから外しておいてください:))または、2番目のファイルに渡す必要があります。

できる場合は、各フォームで使用されるフォーム アクションとメソッドを説明できますか?

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 の準備ができていない場合は、最初のドロップダウン ボックスからのユーザーの選択を処理し、適切な 2 番目のドロップダウンを表示する 2 番目の 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 の値に基づいて 2 番目のページを出力できます。

于 2013-03-31T16:30:29.527 に答える