0

既存の Joomla 2.5 コンポーネントを変更しており、特定のテーブル (インストール時に既に存在する) のデータをいくつかのカスタム列に追加したいと考えています。したがって、このビュー (クイズ ビュー フォルダーの _quizInfo.php) コードは、(DB から取得した) いくつかの情報を表示し、チェックボックスをオンにして別のビュー (クイズ ビュー) に進むフォームで構成されています。(基本的に、これは「続行」ボタンを有効にする 2 つの JS 行です)。(簡略化された)コードは次のとおりです。

<?php defined( '_JEXEC' ) or die( 'Restricted access' ); ?>

<script type="text/javascript" language="javascript">

function proceed()
{
    check = document.getElementById('checkToProceed') ;
    proceedButton = document.getElementById('proceedButton') ;

    if (check.checked) {
        proceedButton.disabled = false ;
    } else {
        proceedButton.disabled = true ;
    }
}

</script>

<form name="quiz_info" method="post">

<?php 
echo '<div class="items-row"><div class="item">';

    echo '<h2>' . JText::sprintf('YOU_HAVE_CHOSEN_TO_TAKE_QUIZ', '"'.$this->quiz- >title.'"') . '</h2>' ;

echo '<ul>' ;

...

echo '</ul>' ;
$option = JRequest::getCmd('option');

$link =  JRoute::_('index.php?option='. $option . '&controller=quiz&layout=default') ;

echo '<p><input type="checkbox" id="checkToProceed" name="checkToProceed" onclick="proceed();" /><label for="checkToProceed">' . JText::_('I_HAVE_READ_AND_UNDERSTOOD') . '</label></p>' ;
echo '<input id="proceedButton" name="proceedButton" disabled="true" value="' . JText::_('PROCEED_TO_QUIZ') . '" type="submit" />' ;

    echo '</div></div>';
?>

<input type="hidden" name="option" value="com_jquarks" />
<input type="hidden" name="id" value="<?php echo $this->quiz->id ; ?>"/>
<input type="hidden" name="task" value="showQuiz" />
<input type="hidden" name="view" value="quiz" />
<input type="hidden" name="layout" value="default" />
<?php echo JHTML::_( 'form.token' );  ?> 

ここで、このページにフォームを追加して、ユーザーが自分のデータを入力してから続行できるようにしました (このステップでこのデータを保存する必要があります)。フォームタグの行:

//Added
echo '<li><p>' . JText::sprintf('Before proceeding you must fill the form bellow:') . '</p></li>' ;

echo '<div style="width: 50%; border: 1px solid; padding: 15px;"><form><div style="width: 100px">Full Name: </div><input type="text" name="fullname" style="width: 100%;"><br/><div style="width:100px"><br>ID document: </div><input type="text" name="iddoc" style="width: 100%;"></form></div>';
//END Added

フォームが POST タイプであることに気付きましたが、アクションが定義されていません。クイズビューは、クイズを表示する前に(目的のテーブルに)必要なすべてのデータを保存しますが、 _quizInfo ビューフォームデータを DB に保存する方法がわかりません。「セッション」は、[続行] をクリックしてクイズ ビューが呼び出された後にのみ (対応するテーブルに) 保存されます。

誰かが私を正しい方向に向けることができますか? Joomla が DB 呼び出しを処理する方法にあまり満足していません。

-クイズ ビューの default.php ファイルで POST データをキャプチャする必要がありますか?

-フォームデータをすぐに保存する必要がありますか?

どんな助けでも大歓迎です。

よろしくお願いします

4

1 に答える 1