ti-enxame.com

Como salvar os valores da caixa de seleção em uma tabela?

Como posso inserir dados de um formulário html em uma tabela no banco de dados Joomla.
Código de exemplo do formulário:
Name : <input type="textbox" name="username"> Selection1 : <input type="checkbox" name="choice1" value="first"> Selection2 :<input type="checkbox" name="choice2" value="second"> Selection3: <input type="checkbox" name="choice3" value="third"> <input type="submit" value="submit" action="save_to_joomla_database.php"></form>

Qual é o script que preciso escrever em save_to_joomla_database.php que armazenará os dados em qualquer tabela específica do banco de dados Joomla?

2
saibbyweb

Primeiro, você precisará obter os valores usando o JInput,

$input = JFactory::getApplication()->input;
$username = $input->get('username');
$choice1 = $input->get('choice1');
$choice2 = $input->get('choice2');
$choice3 = $input->get('choice3');

para a sua consulta ao banco de dados, você pode usar o seguinte:

$db = JFactory::getDbo(); 
$query = $db->getQuery(true);

$columns = array('username', 'choice1', 'choice2', 'choice2');
$values = array($db->quote($username), $db->quote($choice1), $db->quote($choice2), $db->quote($choice3));

$query->insert($db->quoteName('#__table_name'))
      ->columns($db->quoteName($columns))
      ->values(implode(',', $values));

$db->setQuery($query);
$db->execute();

Obviamente, você precisará fazer algumas alterações na consulta ao banco de dados para atender às suas necessidades, mas isso o ajudará a começar

5
Lodder

O @Lodder está definitivamente correto, mas há outra sintaxe para aqueles que estão interessados. Eu prefiro essa sintaxe, pois salva digitando os nomes dos campos quantas vezes

$data = new stdClass;
$input = JFactory::getApplication()->input;
$data->username = $input->get('username');
$data->choice1 = $input->get('choice1');
$data->choice2 = $input->get('choice2');
$data->choice3 = $input->get('choice3');

$db = JFactory::getDbo(); 
$db->insertObject('#__table_name', $data);

Desde que as propriedades do seu objeto correspondam exatamente aos nomes das colunas, basta inserir o objeto diretamente na tabela usando insertObject

5
David Fritsch