it-swarm.com.de

Senden Sie externe Daten an die RSForms MySQL-Tabelle

Ich habe ein Formular auf einer Nicht-Joomla-Website, das die folgenden Felder enthält:

  • Vollständiger Name
  • E-Mail-Addresse
  • In einer Kneipe arbeiten (Kästchen ankreuzen)
  • Lieferant (Kästchen ankreuzen)
  • Über 18

Ich muss den folgenden Code vom externen Formular an die Joomla-Datenbank senden (Joomla verwendet RSForms, um genau diese Daten zu erfassen):

     // 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'];

     } 

Welchen Code muss ich schreiben, um die obigen Variablen an die RSForms-Tabelle in der Datenbank zu senden?

Wenn ich eine SQL-Anweisung verwende, enthält sie nicht die SubmissionId (da diese aus einer anderen Datenbanktabelle stammt)

1
RustyJoomla

Sie müssen lediglich eine Datenbankabfrage schreiben. Ich würde vorschlagen, die Joomla-API zu importieren und eine Joomla-gestaltete Abfrage wie folgt zu schreiben:

$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();

Ich habe zuvor noch nie RSForms verwendet, daher weiß ich nicht, wie die Daten für Ihre Formulare gespeichert werden. Möglicherweise müssen auch einige Änderungen am Code vorgenommen werden, z. B. der Name der Datenbanktabelle

1
Lodder