Liste d'article personnalisée Ubercart (module) et bouton submit inopérant

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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.

Forum : 
Version de Drupal :