0

ご協力いただきありがとうございます...

mhy Joomla! の登録フォームにフォームを追加するために、registration.xml ファイルとその他のファイルを必要に応じて変更しました。サイト。現在、フィールドはすべてテキスト ボックスであり、状態などの項目のリスト ボックスを作成したいと考えています。オプションと値を入力するのではなく、データベースのテーブルから取得します。

私の registration.xml ファイルのこのコードは機能します:

<field name="statelist2" type="list" 
default=""
label="COM_USERS_REGISTER_STATE_LABEL"
description="COM_USERS_REGISTER_STATE_DESC"
message="COM_USERS_REGISTER_STATE_MESSAGE">
<option value="CT">CT</option>
<option value="MA">MA</option>
</field>

私の registration.xml ファイルのこのコードは機能しません。DB への呼び出しを削除して、PHP でページをロードするようにしました。

<field name="statelist" 
type="list"
default=""
label="COM_USERS_REGISTER_STATE_LABEL"
description="COM_USERS_REGISTER_STATE_DESC"
message="COM_USERS_REGISTER_STATE_MESSAGE">
<?php
$x = "CT";
$z = "NY";
echo "<option value='" . $x. "'>" . $x . "</option>"; 
echo "<option value='" . $z. "'>" . $z . "</option>"; 
?>
</field>

私の質問: 1) リスト ボックスを作成するか、潜在的な値を入力するには、コードをどこに (どのファイルに) 配置する必要がありますか?

2) 既存の Joomla! を活用するには フレームワークの場合、registration.php ファイルに loadFormData と getData の関数がいくつかあります。レンダリング後に登録フォームにアイテムを入力するコードをそこに入れることはできますか? このようなことを考えていましたが、よくわかりません。

<?php 
    //init Joomla Framework 
    define( '_JEXEC', 1 ); 
    define( 'DS', DIRECTORY_SEPARATOR ); 
    define( 'JPATH_BASE', realpath(dirname(__FILE__).DS.'..' )); 


    require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); 
    require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); 

    $mainframe = JFactory::getApplication('site'); 

    //DBQuery 
    $database =& JFactory::getDBO(); 
    $query = "SELECT * FROM #__tbl_State;"; 

$database->setQuery($query); 
    //$result = $database->query();
$items = ($items = $db->loadObjectList())?$items:array(); 
    //print_r($result); 
?> 
4

2 に答える 2

2
<field
        name="STUDENT_COURSE"
        type="sql"
        multiple="false"
        size="1"
        label="Interested In Course"
        description="COM_HELLOWORLD_FORM_DESC_UPDHELLOWORLD_GREETING"
        query="select Course_Id, Course_Name from student_course"
        key_field="Course_Id"
        value_field="Course_Name"
        default="0"
required="true"
        >
     <option value="">Please Select Course</option>
</field>
于 2012-08-11T11:35:06.073 に答える
1

うわー、頑張っているように見えますね。

私が何かを見逃していない限り、私はよくそうしますが、仕事に適したツールを使用するだけで済みます;) http://docs.joomla.org/SQL_form_field_type

あなたに適した別のフィールドタイプが見つからない場合があります。 http://docs.joomla.org/Standard_form_field_types

于 2012-04-14T00:14:31.213 に答える