Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Pour tester ZF je suis en trein de faire une application pour gérer des recettes de cuisine. J'en suis donc à faire un formulaire avec zend_form mais le soucis se pose à l'ajout de la recette car je dois faire trois multiselect. Un multiselect est pré-rempli des ingrédients et deux autres vides que je remplis en javascript (un servant à lister les ingrédients sélectionnés de l'utilisateur et un autre listant la quantité).
Ces deux multiselect sont donc rempli en javascript mais lorsque j'envoi mon formulaire au serveur Zend voit ma liste comme vide et je ne comprend pas ce qu'il faut que je fasse pour ne pas qu'il me perde les lignes des listes.
Voici mon code javascript :
function AddIng()
{
//prépare l'item à ajouter à la liste des ingrédients
var itemIng = document.createElement('option');
var select = document.getElementById("SlcIngredient" );
itemIng.text = select.options[select.selectedIndex].text;
itemIng.value = select.options[select.selectedIndex].value;
//prépare la quantité à ajouter à la liste
var quantite = prompt('Saisissez la quantité de '+itemIng.text);
var itemQtt = document.createElement('option');
itemQtt.text = quantite;
itemQtt.value = quantite;
//ajout de l'ingrédient et de sa quantité
var slcCompose = document.getElementById('SlcCompose');
var slcQuantite = document.getElementById('SlcQuantite');
try
{
// standards compliant; doesn't work in IE
slcCompose.add(itemIng, null);
slcQuantite.add(itemQtt, null);
}
catch(ex)
{
// IE only
slcCompose.add(itemIng);
slcQuantite.add(itemQtt);
}
document.getElementById('SlcIngredient').remove(select.selectedIndex);
//on masque le bouton d'ajout
document.getElementById('BtnAddIng').style.display = 'none';
}
Et voici le code de mon controller :
$this->view->headScript()->appendFile($this->view->baseUrl().'/js/Edit.js');
$form = new EditForm();
$this->view->form = $form;
$formData = $this->_request->getPost();
if($this->_request->isPost())
{
if($form->isValid($formData))
{
$values=$form->getValues();
$idRecette = new Recette();
//SELECT max(id_recette)+1 id FROM recette
$select_id = $idRecette->select()
->from("recette", "max(id_recette)+1 id")
->where("id_typerecette = ?", $values['SlcType']);
$idRecette = $idRecette->fetchRow($select_id);
$data = array(
'id_recette'=>$idRecette->id,
'titre_recette'=>$values['TxbTitre'],
'tps_preparation_recette'=>$values['TxbTpsPrepa'],
'tps_cuisson_recette'=>$values['TxbTpsCuisson'],
'id_auteur'=>$values['SlcAuteur'],
'id_typerecette'=>$values['SlcType'],
'preparation_recette'=>$values['TxbPrepa'],
'conseil_recette'=>$values['TxbConseil'],
'changer_recette'=>$values['TxbChanger'],
'gagnertps_recette'=>$values['TxbGagnerTps'],
'accompagnement_recette'=>$values['TxbAccompagnement']
);
$recette = new Recette();
$recette->insert($data);
}
}
Je remercie les courageux qui prendront le temps de lire et peut-être de m'aider.
Hors ligne
Pages: 1