Jump to content
arshadmd

Affichage d'une generateList

Recommended Posts

Bonjour,

je suis actuellement sous prestashop 1.6,  le problème que je rencontres actuellement est celui-ci :

Je créer une liste à l'aide de la fonction generateList() de la classe HelperList.class, or lorsque je veux afficher cette liste (c'est lorsque je clique sur un bouton) j'aimerais que cette list soit afficher sur la page actuelle ou je suis ma current_page et qu'elle ne me renvois pas sur une nouvelle page avec la liste. Car aujourd'hui lorsque je clique sur mon bouton pour afficher une nouvelle list celle si me renvois sur une nouvelle page avec la liste, or je voudrais que cette liste soit afficher sur la même page que le bouton qui me permet de l'afficher et je suis bloquer à cette endroit.

Si quelqu'un aurait une solution ou autre je suis preneur merci ;)

Code qui me génère la liste :
 

public function CreateListProductBySeller(){
        $ProductOrder = SellerOrder::getProductBySeller($_GET['id'], $_GET['id_seller']);
        // var_dump($ProductOrder);die();
        foreach ($ProductOrder as $key => $value) {
            $ProductOrder[$key]['price'] = $value['tax'] * $value['price'] + 0;
        }

        /* var_dump($ProductOrder);die();*/
         $this->fields_list = array(
            'id_product' => array(
                    'title' => 'Id du produit',
                    'type' => 'text',
            ),

            'name' => array(
                    'title' => 'Nom du produit',
                    'type' => 'text',
            ),

            'quantity' => array(
                    'title' => 'quantité',
                    'type' => 'text',
                    'align' => 'center',
            ),

            'price' => array(
                    'title' => 'Prix',
                    'type' => 'text',
            ),
            'lot' => array(
                    'title' => 'Lot',
                    'type' => 'text',
            ),

            'replace_lot' => array(
                    'title' => 'remplacement Lot',
                    'type' => 'text',
            ),
            'replace_quantity' => array(
                    'title' => 'remplacement quantité',
                    'type' => 'text',
            ),
            'replace_name' => array(
                    'title' => 'remplacement produit',
                    'type' => 'text',
            ),
            'checked' => array(
                    'title' => 'Statut',
                    'type' => 'bool',
                    'active' => 'status',
            )

          );

        $helper = new HelperList();
        $helper->shopLinkType = '';
        $helper->simple_header = true;
        $helper->listTotal = count($ProductOrder);

        $helper->module = $this->module;
        $helper->identifier = 'id_seller';
        $helper->title = "Liste des produit pour la référence : <bold>" . $ProductOrder[0]['reference'] . "</bold> Du Vendeur : " . $ProductOrder[0]['shop'];
        // $helper->table = 'Delivery';
        $helper->token = $this->token;
        $helper->currentIndex = 'index.php?controller=AdminSellerOrder&inSeller=1&id=' . $_GET['id'];

        return $helper->generateList($ProductOrder, $this->fields_list);
    }

Code qui me permet d'afficher la liste :

public function renderList() {

        $this->context->controller->addCSS(_PS_MODULE_DIR_.'/jmarketplace/views/css/disabledClickActive.css');

        if (Tools::isSubmit('submitResetconfiguration')) {
            return $this->resetFilters();
        }
        if (isset($_GET['inOrder']) && !isset($_POST['submitFilterconfiguration']) && !isset($_GET['configurationOrderby'])) {
            
            return $this->CreateListCustomersById().$this->CreateListSellerByOrder();
        }

        if (isset($_GET['inSeller'])) {
            return $this->CreateListProductBySeller();
            
        }

        $this->addRowAction('delete');
         unset( $this->toolbar_btn['new'] );



        $this->__construct();

        $this->context->controller->addCSS(_PS_MODULE_DIR_.'/jmarketplace/views/css/display-btn.css');
        return $this->today().$this->semaine().$this->renderNormList();
    }

 

Share this post


Link to post
Share on other sites

Si votre bouton est dans le form, c'est normal que cela recharge la page ou l'envoie dans une nouvelle (formulaire = POST)

Donc sortez le bouton du <form>  (ou interceptez l'appel en js) et utilisez ajax pour envoyer la requête et afficher le résultat dans la page

Share this post


Link to post
Share on other sites

enfaite ce n'est pas vraiment un bouton j'ai dit sa pour essayer de faciliter la compréhension de mon problème.

Si vous voulez de base j'affiche une liste  contenant deux prénom et si je clique sur un prenom j'affiche une autre liste (celle dont j'ai mis le code au dessus). Ce que je voudrais c'est que lorsque je clique sur un prénom la deuxieme liste soit affiche juste en dessous de la première donc sur la même page. Je ne sais pas si vous m'avez compris

Share this post


Link to post
Share on other sites

Ok donc vous devez customiser votre lien sur les lignes du tableau et l'intercepter en js, pas d'autre moyen

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More