RS Forms Proを使用していて、送信されたフォームのリストをメニューリンクから表示できます。 view、edit、downloadこのページのフォーム。それ以来、期待どおりに機能するdelete機能を追加しました。私は優れたガイドに従いました ここ
私が今やろうとしていることはおそらく非常に単純ですが、それを理解することはできません。
「削除」ボタンを押すと、フォームが削除され、ページが更新されます。しかし、私は(何かのような)を読むメッセージ(おそらくシステムメッセージdiv内に)を表示したいと思います
正常に削除されました
削除機能は動作しますが、参照用にコードを含めます。
フォーム表示で呼び出されるスクリプトは次のとおりです(これはRSフォーム構成で設定されます)。
// First we have to check the "action" parameter from the URL
$action = JRequest::getWord('action');
if ($action == "delete") {
// If it returns true it will continue running the script
$id_value = JRequest::getInt('id');
$formId_value = JRequest::getInt('formId');
// For security reasons we verify if the user has the right to edit submissions using RSFormProHelper
if ($id_value && $formId_value && RSFormProHelper::canEdit($formId_value,$id_value)){
// If user has enough permission rights, run the query
$db = JFactory::getDbo();
$db->setQuery("DELETE FROM #__rsform_submission_values WHERE `SubmissionId`='". $id_value."'");
$db->execute();
$db->setQuery("DELETE FROM #__rsform_submissions WHERE `SubmissionId`='". $id_value."'");
$db->execute();
// Redirect the user back to Manage directories
$itemId_value = JRequest::getInt('Itemid');
$mainframe->redirect(JRoute::_('index.php?option=com_rsform&view=directory&Itemid='.$itemId_value, false));
}
// If the user does not have permission to edit, he will be prompted with the language override created earlier:
else
$formLayout = JText::_('RSFP_DELETE_ERROR');
}
私の削除ボタンのコードは次のとおりです(com_rsformのオーバーライド)。
<a href="<?php echo JRoute::_('index.php?option=com_rsform&formId='.$this->params->get('formId').'&action=delete&id='.$item->SubmissionId);?>">delete</a>
ページのソースを表示すると、フォームの上に空のdivが表示されますが、システムメッセージはおそらくそこに表示されますか?
<div id="system-message-container"></div>
これはRSフォームに関連していることを理解していますが、削除が成功したときにシステムメッセージdiv
に値を渡す方法を理解したいと思っています。
提案は大歓迎です。
enqueueMessage
関数を使用して、システム出力セクションにメッセージを表示できます。
提供したコードでは、次のようになります。
$mainframe->redirect(JRoute::_('index.php?option=com_rsform&view=directory&Itemid='.$itemId_value, false));
次のものに置き換えます。
$mainframe->redirect(JRoute::_('index.php?option=com_rsform&view=directory&Itemid='.$itemId_value, false), 'successfully deleted', 'success');
見やすくするために:
$url = 'index.php?option=com_rsform&view=directory&Itemid='.$itemId_value;
$msg = 'successfully deleted';
$type = 'success';
$mainframe->redirect(JRoute::_($url, false), $msg, $type);
更新:
申し訳ありませんが、リダイレクト機能でのメッセージの受け渡しは推奨されていません。代わりに、リダイレクトの前にenqueueMessage
を使用する必要があります。
$url = 'index.php?option=com_rsform&view=directory&Itemid='.$itemId_value;
$msg = 'successfully deleted';
$type = 'success';
$mainframe->enqueueMessage($msg, $type);
$mainframe->redirect(JRoute::_($url, false));