既存の 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 データをキャプチャする必要がありますか?
-フォームデータをすぐに保存する必要がありますか?
どんな助けでも大歓迎です。
よろしくお願いします