0

だから私は 2-3 の異なる機能を実行する単一の PHP ファイルを持っているしようとしています。

基本的に、ページが読み込まれると (test.php)、ページに一般的な html 要素が読み込まれます。jquery タブ ui と、SQL データベースから取り込まれたコンボ ボックスをロードします。

上記の html 要素はどちらも正常に動作していますが、問題はありませんが、jquery ui タブの生成と sql/コンボ ボックスの生成は別の PHP ファイルにあります。これらの両方のステップを 1 つのファイルに結合したいと考えています。

最初のページの読み込みでは、上記の手順から 2 つの要素を読み込みますが、コンボ ボックスに onChange イベントまたは onClick イベントがある場合は、ページをそれ自体 (test.php) に投稿する必要があります。isset() または empty() の使用について読んでいますが、正しい方法でこれを行う方法が正確にはわかりません。

実際のこれに関する提案や例はありますか? これは何度も尋ねられていると確信していますが、これまでのところ解決策が見つかりません。

ドロップダウン.php

<?php
//Create the DB populated dropdown list

$con = mysql_connect("localhost", "_user", "_pass");


$tables = mysql_query("SHOW TABLES FROM _dropdown");
mysql_select_db("items", $con);

echo '<select id="Type" onChange="dropChange();">';
echo '<option value="" style="display:none;"></option>';
while ($row = mysql_fetch_row($tables)) {
    foreach($row as $value){
        $i = mysql_query("SELECT * FROM $value ORDER BY name ASC", $con);
        echo '<optgroup label="'.ucfirst($value).'"></optgroup>';
        while($row2 = mysql_fetch_row($i)){
            echo '<option id="'.$value.'" value="'.$row2[0].'">'.$row2[0].'</option>';
        }
    }   
}
echo '</select>';

mysql_close($con);
?>

tabs.php

<?php

$con = mysql_connect("localhost", "_user", "_pass");
mysql_select_db("_database", $con) or die (mysql_error());
$result = mysql_query("SELECT * FROM _table") or die (mysql_error());
$num_rows = mysql_num_rows($result);
mysql_close($con);


echo '
    <script language="javascript" type="text/javascript">
        $( "#tabs" ).tabs({
            beforeLoad: function( event, ui ) {
                ui.jqXHR.error(function() {
                    ui.panel.html(
                        "Couldn\'t load this tab. We\'ll try to fix this as soon as possible. " +
                        "If this wouldn\'t be a demo." );
                });
            }
        });
    </script>

    <ul>
        <li id="S1"><a href="#S1">S1</a></li>
        <li id="S2"><a href="#S2" style="color:red; text-decoration:line-through">S 2</a></li>
        <li id="S3"><a href="#S3" style="color:red; text-decoration:line-through">S 3</a></li>
    </ul>
    <div id="breadcrumbs"></div>
    <div id="s1">

    </div>
    <div id="s2">

    </div>
    <div id="s3">

    </div>  
    ';

?>

したがって、「test.php」にこれら2つのスクリプトを1つのページ(test.php)に結合させ、両方の機能を実行させようとしています。onChange="dropChange();"の代わりに dropdown.php ページでは、次のようなものではありません。

onChange='<? php $_POST["PHP_SELF"] ?>'
4

1 に答える 1

0

すでにjqueryを使用しているため、ページの上部にイベントモニターを追加して、送信ボタンがクリックされたかのようにフォームが送信されたとページに認識させることができます-

$(document).ready(function() {
    $("#id_of_your_drop_down").onChange(function(event){
       event.preventDefault(); //prevents the usual redraw behavior
       $("#id_of_your_submit_button").click() //triggers form submission for that submit
       }
    });
});

dropChange(); の代わりに $("#id_of_your_submit_button").click() を配置するだけです。しかし、上記の方法はより良い方法です。

于 2012-10-30T19:38:14.727 に答える