Submitted by chrisendymion on
Hello !
Mon premier message, bonjour à tous ;)
Je travaille sur Drupal 6.x et Ubercart 2.x. J'essaie de créer un nouveau module, basé (pour ceux qui connaissent) sur UC_Wishlist. Le but est de permettre aux clients de se créer des listes personnalisées de produits. J'y ai intégré des solutions AJAX pour rendre bien dynamique la création d'une liste et l'ajout au panier depuis cette liste.
Tout fonctionne, presque, comme prévu. Mon problème est qu'au fond de la liste, je rajoute un bouton "submit" pour envoyer le formulaire afin ensuite, d'exécuter des changements (suppressions, quantité produits, etc). Mais voilà, ce bouton ne fait strictement rien du tout ! Il n'envoie pas la page, cliquer dessus n'exécute strictement rien. Excepté si je supprime une ligne précise de mon code (voir au fond du post).
Un peu de code :
<?php
function uc_customlist_view_form($form_state, $items, $wid, $own) {
$form = array();
$form['items'] = array(
'#tree' => TRUE,
);
foreach ($items as $item) {
$node = node_load($item->nid);
$element = array();
...
$element['model'] = array('#value' => $item->model);
$element['qty'] = array('#value' => $item->qty, '#type' => 'hidden',);
$element['sellunit'] = array('#value' => $item->sellunit);
...
$form['items'][] = $element;
}
...
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Submit',
);
...
return $form;
}
?>
La fonction pour le rendu :
<?php
function theme_uc_customlist_view_form($form) {
$rows = array();
...
foreach (element_children($form['items']) as $i) {
$nid = $form['items'][$i]['nid']['#value'];
$product = node_load($nid);
...
$row = array(
$desc,
$form['items'][$i]['sellunit'] ? drupal_render($form['items'][$i]['sellunit']) : '',
...
drupal_get_form('uc_product_add_to_cart_form_'. $nid, $product)
);
...
$rows[] = array('data' => $row, 'valign' => 'top');
}
...
$output = '<div id="customlist-view-form">'. theme('table', $header, $rows) .'</div>';
return $output . drupal_render($form);
}
?>
Voilà, si maintenant je supprime la ligne "drupal_get_form('uc_product_add_to_cart_form_'. $nid, $product)", le bouton submit fonctionne à nouveau normalement.. Pourquoi ?
Je me rends bien compte qu'il y a un soucis aux niveaux des forms et des boutons submit, mais quoi faire ?
Merci beaucoup d'avance ;)
Chris.