checkboxes & forms

2 views
Skip to first unread message

Aline EA

unread,
Jul 2, 2008, 2:37:00 PM7/2/08
to symfony-pt
Boa tarde a todos
Preciso da ajuda de vocês...
Bom, melhor explicar bem o que está acontencendo:
tenho duas tabelas, amostra e pedido, onde amostra tem um campo
id_pedido que, na criacao de uma amostra, fica sendo NULL.
Em um formulario, eu seleciono amostras e clico para submter. Uma
action entao eh responsavel por capturar quais amostras eu selecionei
e criar um pedido com elas. Assim, com o pedido criado e com o id do
novo pedido, eu requisito cada amostra selecionada e ponho o id do
pedido no campo id_pedido que antes era null.
Bom, o meu problema eh que queria fazer a selecao se amostras
utilizando um conjunto de checkboxes, onde o valor de cada checkbox
eh o id da amostra. Meu problema estah sendo criar este conjunto de
checkboxes e captura-las de volta na action. Queria usar um array de
checkboes mas nao sei como faria para requisitar esse array na action.

na form jah tentei assim:
<?php foreach($amostras as $amostra) ?>
(...)
<?echo checkbox_tag('ams_ids[]', $amostra->getId(), false) ?>

e na action assim:
$ams_ids = $this->getRequestParameter('ams_ids[]);
foreach($ams_ids as $ams) {
$amostra = AmostraPeer::retrieveByPk( $ams);
$amostra->setIdPed($id_ped);
}mas, por exemplo, o symfony acusou que $amostra nao eh um objeto.

enfim.. se alguem puder me dar um toque eu agradeceria muito mesmo =O
obrigada a todos

Aline EA

unread,
Jul 2, 2008, 4:47:12 PM7/2/08
to symfony-pt
Incrivel...
Eu passo quatro dias tentando resolver um problema no symfony, mas é
só eu postar aqui que a solução vem :(
:)

o problema jah fi resolvido... vou postar aqui para ajudar outras
pessoas:

esta parte estava certa:
<?php foreach($amostras as $amostra) ?>
(...)
<?echo checkbox_tag('ams_ids[]', $amostra->getId(), false) ?>


mas na action tinha que usar um metodo $_POST['nomedoarraydecheckbox']
ao inves do getRequest

$_POST['nomedoarraydecheckbox'] guarda somente as checkboxes checadas

para pegar os valores das checkboxes se faz assim:
foreach( $_POST['nomedoarraydecheckbox'] as $key => $value) {
$amostra = AmostraPeer::retrieveByPk( $value );
$amostra->setIdPed($id_ped);
}

ateh mais pessoal :D:D:D:D:D:D:D:D:D:D:D

Pedro Casado

unread,
Jul 2, 2008, 5:06:17 PM7/2/08
to symfo...@googlegroups.com
$ams_ids = $this->getRequestParameter('ams_ids');

Tirando o "[]" não resolve? Se não me engano já usei isso.

Pedro


2008/7/2 Aline EA <ali...@gmail.com>:



--
Att,
Pedro Casado

Bruno Reis

unread,
Jul 2, 2008, 6:11:05 PM7/2/08
to symfo...@googlegroups.com
A questão não é o POST ou o Request e sim tirar os [] do recebimento.
Como pode não ter sido checado nenhum, você também tem que testar para ver se é um array, ou usar um default assim:

$ids = $this->getRequestParameter('ams_ids',array());

como no foreach você não usa a key, pode ser só...

foreach($ids as $id) {
...
}



2008/7/2 Aline EA <ali...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages