0

1)国、町、ショップの3つのドロップダウンがある基本的なJoomlaフォームがあります
。2)上記のドロップダウンリストに基づいてドロップダウンリストを取得する必要があります。

usercomponentのregistration.xmlにコーディングすることで、データベースからデータを取得し、ドロップダウンを作成することができました。

達成する必要があること: ドロップダウンで選択した上記のデータに基づいて動的ドロップダウンを作成しようとしています。

私がこれのために一生懸命働いているのを手伝ってください私は解決策を見つけることができず、コードの突破口

4

1 に答える 1

1

ここで、これの基本的な非 Joomla の例を作成しました

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<?php
    $username = "USERNAME";
    $password = "PASSWORD";
    $hostname = "localhost";

    $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
    $selected = mysql_select_db("DATABASE", $dbhandle) or die("Could not select examples");

$result = mysql_query("SELECT * FROM `values`");
$values=array();
$counter=0;
while($row = mysql_fetch_array($result))
{
   $values[$counter]=$row{'country'};
   $counter++;
}

mysql_close($con);
?>
        <?php
            $i=0;
            $countries=array();
            foreach($values as $value) {
                $exists=false;
                if(count($countries)>0) {
                    foreach($countries as $something) {
                        if($something==$value) {
                            $exists=true;
                        }
                    }
                }
                if($exists==false) {
                    $countries[$i]=$value;
                    $i++;
                }
            }
        ?>
    <select id="first-choice">
        <option selected value="base">Please Select</option>
        <?php
            $k=0;
            while($k<count($countries)) {
                echo "<option value='".$countries[$k]."'>" . $countries[$k] . "</option>";
                $k++;
            }
        ?>
    </select>

    <br />

    <select id="second-choice">
        <option>Please choose from above</option>
    </select>

    <br />

    <select id="third-choice">
        <option>Please choose from above</option>
    </select>
    <script type="text/javascript">
    $("#first-choice").change(function() {
        $("#second-choice").load("getter.php?country=" + $("#first-choice").val());
    });
    $("#second-choice").change(function() {
        $("#third-choice").load("getter.php?town=" + $("#second-choice").val());
    });
    </script>
</body>
</html>

getter.php というファイル

<?php
    $username = "USERNAME";
    $password = "PASSWORD";
    $hostname = "localhost";

    $dbhandle = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
    $selected = mysql_select_db("DATABASE", $dbhandle) or die("Could not select examples");

    if($_GET['country']) {
        $countries = mysql_real_escape_string($_GET['country']);

        $query = "SELECT * FROM `values` WHERE country='".$countries."'";

        $result = mysql_query($query);

        $values=array();
        $i=0;
        while($row = mysql_fetch_array($result))
        {
           $values[$i]=$row{'town'};
           $i++;
        }
        $i=0;
        $towns=array();
        foreach($values as $value) {
            $exists=false;
            if(count($towns)>0) {
                foreach($towns as $town) {
                    if($town==$value) {
                        $exists=true;
                    }
                }
            }
            if($exists==false) {
                $towns[$i]=$value;
                $i++;
            }
        }
        $k=0;
        echo "<option selected value='base'>Please Select an Option</option>";
        while ($k<count($towns)) {
            echo "<option value=".$towns[$k].">" . $towns[$k] . "</option>";
            $k++;
        }
    } elseif ($_GET['town']) {
        $town = mysql_real_escape_string($_GET['town']);
        $query = "SELECT * FROM `values` WHERE town='".$town."'";

        $result = mysql_query($query);

        echo "<option selected value='base'>Please Select an Option</option>";

        while ($row = mysql_fetch_array($result)) {
            echo "<option>" . $row{'shop'} . "</option>";
        }   
    }
?>

ここのチュートリアルに基づいています。これをJoomlaに。モデルに getter.php ファイルを配置し、(適切なコントローラーを使用して) JSON を介して呼び出す必要があります。言語ファイルで作成できるように、すべての可視テキストを JText に置き換えることを忘れないでください。また、jquery をヘッダーに追加するJDocument::addScriptか、Joomla 3.0 を使用している場合はそれJHtml::_('jquery.framework');で十分です。また、Joomla を使用してデータベースに接続する必要があります。JFactory::getDBO

この基本的な例をここに置きました。

いくつかの注意事項: JQuery は常に更新されているため、特定のバージョンの JQuery を呼び出したい場合があります。1.9.0 は問題なく動作しますが、2.0.0 が公開されたときにそのリンクで何がホストされるのか、どのようなブラウザー互換性が含まれるのかはわかりません。

これは、データベース構造が

id country town shop. もちろん、あなたのデータベース スキームがそれほど簡単であるとは思えません。したがって、必要に応じてこれを調整することを忘れないでください。

うまくいけば、これはあなたが始めるはずです:)

于 2013-01-21T14:35:18.480 に答える