0

phpとmysqlを使用してWebページを作成しましたが、問題は非常に多くの送信ボタンが含まれているため、Webページが何度も再描画されることを除いて、コードは正常に機能します。いくつかの値、つまり$emirate値と$areas値を失います。これらの値を格納するために変数$choiceを使用しましたが、ページが再描画されているため、値を取得できません。お願い助けて。

$data = mysql_query("SELECT * FROM emirate") 
    or die(mysql_error()); 

    $choice="";

    Print "<table border cellpadding=3>"; 
    print"<tr><th><form method=get action=''><select id=EMIRATE size=1 name='EMIRATE' class='comboBoo'>";
    while($info = mysql_fetch_array( $data )) 
    { 
        Print "<option value=". $info['em_name'] .">".$info['em_name']."</option>"; 
    }
    print"</select><input type=submit value=OK></form></th>";
    if(isset($_GET['EMIRATE'])){
        $emirate=$_GET['EMIRATE'];
        $choice.=$emirate;
        $data = mysql_query("SELECT a_name FROM areas where em_id=(select em_id from emirate where em_name=\"".$emirate."\")") 
        or die(mysql_error());
        Print "<th><form method=get action=''><select id='AREAS' name=AREAS size=1 class='comboBoo'><OPTION value=ALL>ALL</option><OPTION value=ALL>ALL</option>";
        while($info = mysql_fetch_array( $data ))
        {
            Print "<option >".$info['a_name']."</option>";
        }
        print"</select><input type=submit value=OK></form></th>";
    }

    $choice.="->";

    if(isset($_GET['AREAS'])){
        $areas=$_GET['AREAS'];
        $choice.=$areas;
        $data = mysql_query("SELECT h_name FROM hypermarket_em where a_id=(select a_id from areas where a_name=\"".$areas."\")")
        or die(mysql_error());
        Print "<th><form method=get action=''><select name=HYPERMARKETS size=1 class='comboBoo'>";
        while($info = mysql_fetch_array( $data ))
        {
            Print "<option>".$info['h_name']."</option>";
        }
        print"</select><input type=submit value=OK></form></th>";
    }   
    Print "</tr></table>";
    Print "<table border cellpadding=3><tr><th>".$choice."</th></tr></table>";

どうすればそれらを保持できますか?

4

2 に答える 2

0

ajaxを使用してページの一部(フォームの1つまたはフォームの一部)のみを送信するには、javascriptを使用する必要があります

jQueryは非常に人気があり、習得が容易なJavaScriptライブラリであり、このようなajax呼び出しを非常に簡単にします。これがチュートリアルです。

他の解決策:

ページをリロードしたくない場合やJavaScriptを使用したくない場合は、ターゲットを(非表示の)iframeなどの別のページ/フレームに設定します。そのため、すべてのフォームを含むページが残り、送信されたフォームの出力を別のページ(新しいウィンドウ、フレーム、またはiframe)に渡すことができます。

返品を気にしない場合は、非表示にすることができます。これは非常に基本的な例です。

<form target="hiddenframe">
     <input type="submit"/>
</form>
<iframe name="hiddenframe" style="display:none"></iframe>
于 2012-10-18T06:34:55.967 に答える
0
$choice="";

    Print "<table border cellpadding=3>"; 
    print"<tr><th><form method=get action=''><select id=EMIRATE size=1 name='EMIRATE' class='comboBoo'>";

 print"</select><input type=hidden name='areas_hidden' value=<?php echo $_GET['AREAS'] ?>/>"
 print"</select><input type=hidden name='emerates_hidden' value=<?php echo $_GET['EMIRATE'] ?>/>"
</th>";

両方のフォーム送信アクションでこれらの値を送信すると、URLに両方が含まれます。

于 2012-10-18T06:46:34.217 に答える