Joomla以外のWebサイトに次のフィールドを持つフォームがあります。
外部フォームからJoomlaデータベースに送信する次のコードがあります(JoomlaはRSFormsを使用してこの正確なデータをキャプチャしています)。
// read form
if(strcasecmp($_GET['method'],'subscribe') == 0){
$fullName = $_POST['fullName'];
$emailAddress = $_POST['emailAddress'];
$worksInPub = ($_POST['workInPub']==='true');
$isSupplier = ($_POST['isSupplier']==='true');
$isOver18 = ($_POST['isOver18']==='true');
// Do something here with the data. If it fails, modify $response['code'] accordingly
$response['code'] = 1;
$response['status'] = $api_response_code[ $response['code'] ]['HTTP Response'];
$response['data'] = $api_response_code[ $response['code'] ]['Message'];
}
上記の変数をデータベースのRSFormsテーブルに送信するには、どのコードを記述する必要がありますか?
SQLステートメントを使用すると、SubmissionIdが含まれません(これは別のデータベーステーブルからのものであるため)
あなたがする必要があるのはデータベースクエリを書くことだけです。 Joomla APIをインポートして、次のようなJoomlaスタイルのクエリを作成することをお勧めします。
$fullName = $_POST['fullName'];
$emailAddress = $_POST['emailAddress'];
$worksInPub = ($_POST['workInPub']==='true');
$isSupplier = ($_POST['isSupplier']==='true');
$isOver18 = ($_POST['isOver18']==='true');
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('fullName', 'emailAddress', 'workInPub', 'isSupplier', 'isOver18');
$values = array($db->quote($fullName), $db->quote($emailAddress), $db->quote($workInPub), $db->quote($isSupplier), $db->quote($isOver18));
$query->insert($db->quoteName('#__rs_forms_table'))
->columns($db->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->execute();
私はこれまでにRSFormsを使用したことがないため、フォームのデータがどのように保存されるのかわかりません。そのため、上記は間違っている可能性があります。データベースのテーブル名など、コードにいくつかの調整を加えることもできます