Check Radioboxes

sbischoff 05 Jun, 2013
Hi there,

with my form I save some things in a database. The user can Check some Stuff like "Stangenholz", "Wasser", "Lebensmittel" and so on. I save all these values in my database but when I reload the form, the radio boxes aren´t checked anymore.

Can you help me with this?

Thanks in advance!

Greetz
GreyHead 06 Jun, 2013
Hi sbischoff,

The Advanced tab of the DB Record Loader has settings for Array Field Sets and Array Separators that will un-pack data stored as lists back into the arrays needed to republish the form.

Bob
sbischoff 12 Jun, 2013
Hi Bob,

thanks for your help and your quick answer.

The problem is, that I don't use the DB Record Load, because I need data from a different database ans provided in the dropdown lists inside the component.

That´s why I use a custome code:
<?php
//Verbindungsdaten zur Datenbank
$db_server = 'xxx';
$db_name = 'xxx';
$db_user = 'xxx';
$db_passwort = 'xxx';

//Verbindung zur Datenbank wird hergestellt
$db = @mysql_connect($db_server, $db_user, $db_passwort)
   or die ('Konnte keine Verbindung zur Datenbank herstellen');

//Datenbank wird ausgewählt
mysql_select_db($db_name, $db);

//Datentransfer von/zur Datenbank wird UTF8 kodiert
mysql_query("SET NAMES 'utf8'");

//Updatekey aus Chronoforms auslesen und in Variable schreiben
$updatekey =  $form->data['updatekey'];

//SQL-String erstellen, Abfrage nach updatekey
$SQL_String = 'SELECT DISTINCT * FROM xxx WHERE updatekey = "' . $updatekey . '"';

//SQL-Abfrage wird durchgeführt
$result = mysql_query($SQL_String);

//Fehlermeldung, wenn Verbindungsfehler oder Updatekey falsch
if (!$result) {
    $message  = 'Ungültige Abfrage: ' . mysql_error();
    $message .= 'Gesamte Abfrage: ' . $SQL_String;
    die($message);
}


//So lange Ergebnisse aus der Datenbank gelesen werden
while ($row = mysql_fetch_assoc($result)) {
  //Daten übergeben an Formular-Daten
  $form->data['Vorname'] = $row['Vorname'];
  $form->data['Name'] = $row['Name'];
  $form->data['Stamm'] = $row['Stamm'];
  $form->data['Funktion'] = $row['Funktion'];
  $form->data['eMail'] = $row['eMail'];
  $form->data['Projektname'] = $row['Projektname'];
  $form->data['Projektbeschreibung'] = $row['Projektbeschreibung'];
  $form->data['Zielgruppe'] = $row['Zielgruppe'];
  $form->data['needAnmeldung'] = $row['needAnmeldung'];
  $form->data['Anmeldeschluss'] = $row['Anmeldeschluss'];
  $form->data['TNMin'] = $row['TNMin'];
  $form->data['TNMax'] = $row['TNMax'];
  $form->data['TNfrei'] = $row['TNfrei'];
  $form->data['Dauer'] = $row['Dauer'];
  $form->data['DauerEinheit'] = $row['DauerEinheit'];
  $form->data['Haeufigkeit'] = $row['Haeufigkeit'];
  $form->data['Ort'] = $row['Ort'];
  $form->data['Materialkosten'] = $row['Materialkosten'];
  $form->data['Material'] = $row['Material'];
  $form->data['Kommentar'] = $row['Kommentar'];
  $form->data['KiFVerantwortlicher'] = $row['KiFVerantwortlicher'];
  $form->data['KommentarIntern'] = $row['KommentarIntern'];
  $form->data['assigned'] = $row['assigned'];
}

//Ergebnisse der SQL-Abfrage werden aus Speicher gelöscht
mysql_free_result($result);
?>


What do I have to change here?
GreyHead 12 Jun, 2013
Hi sbischoff,

Here's how I would write it using the Joomla! DB Methods.
<?php
$options = array();
$options['driver'] = 'mysqli';  // Database driver name
$options['host'] = 'localhost';  // Database host name
$options['user'] = 'xxx';  // User for database authentication
$options['password'] = 'xxx';  // Password for database authentication
$options['database'] = 'xxx';  // Database name
$options['prefix'] = 'jos_';  // Database prefix (may be empty)
$db2 =& JDatabase::getInstance($options);

$query = "SET NAMES 'utf8'";
$db2->setQuery($query);
$db2->query();

$query = "
  SELECT DISTINCT * 
    FROM xxx WHERE updatekey = '{$form->data['updatekey']}' ;
";
$db2->setQuery($query);
$result = $db2->loadAssoc();
foreach ( $result as $k => $v ) {
  if ( is_array
  $form->data[$k] = $v;
}
$checkboxes = array(
  'input_name_1',
  'input_name_2',
  . .  .
);
foreach ( $checkboxes as $c ) {
  $form->data[$c] = explode(',', $form->data[$c]);
}
?>




Bob
This topic is locked and no more replies can be posted.