Jump to content

[Résolu][1.7.8.5] Error: cannot call methods on autocomplete prior to initialization; attempted to call method 'ajax-tab.php'


Myo

Recommended Posts

Bonjour,

Je suis en train de mettre en place une nouvelle boutique sous 1.7.8.5. J'ai installé un thème et j'ai pris contact avec le créateur avant de faire ce post, il m'indique qu'aucunes modifications n'a été faite dans le backoffice.

Lorsque je créé/modifie une Règle panier (bon de réduction), je pense qu'il y a un crash quelque part.

Le premier constat est que les 3 tabs ne sont pas pliés, je voie tout le contenu en 1 page. 
Ensuite, les champs d'autocomplétions ne fonctionnent pas (par exemple Condition > Limiter à un seul client)

Dans la console, voilà ce que j'obtient dès l'ouverture de la page :

Quote

jquery-3.5.1.min.js:2 Uncaught Error: cannot call methods on autocomplete prior to initialization; attempted to call method 'ajax-tab.php'
    at Function.error (jquery-3.5.1.min.js:2:2589)
    at HTMLInputElement.<anonymous> (jquery.ui.widget.min.js:4:1968)
    at Function.each (jquery-3.5.1.min.js:2:2976)
    at e.fn.init.each (jquery-3.5.1.min.js:2:1454)
    at e.fn.<computed> [as autocomplete] (jquery.ui.widget.min.js:4:1743)
    at form.js:264:4

 

La section en question dans form.js (/admin/themes/default/template/controllers/cart_rules/form.js) :

$('#reductionProductFilter')
  .autocomplete(
    'ajax-tab.php', {
      minChars: 2,
      max: 50,
      width: 500,
      selectFirst: false,
      scroll: false,
      dataType: 'json',
      formatItem(data, i, max, value, term) {
        return value;
      },
      parse(data) {
        const mytab = new Array();

        for (let i = 0; i < data.length; i++) mytab[mytab.length] = {data: data[i], value: (`${data[i].reference} ${data[i].name}`).trim()};

        return mytab;
      },
      extraParams: {
        controller: 'AdminCartRules',
        token: currentToken,
        reductionProductFilter: 1,
      },
    },
  )
  .result((event, data, formatted) => {
    $('#reduction_product').val(data.id_product);
    $('#reductionProductFilter').val((`${data.reference} ${data.name}`).trim());
  });


J'ai fais une courte vidéo pour vous donner une meilleure idée : https://www.loom.com/share/9322684b7dec402fa8371c1c9e2be921

Voilà ma configuration :

2022-06-30 17_19_57.png

Même résultat sous Chrome ou Firefox.

Je n'ai pas réussi à trouver de post avec le même soucis que moi sous Prestashop, est-ce que quelqu'un a déjà eu ce genre de problème ? Une idée d'où ça peut venir ou comment le régler ?

Merci.

Edited by Myo (see edit history)
Link to comment
Share on other sites

Alors finalement, j'ai trouvé mon problème.

J'ai désactivé tous mes modules 1 par 1 pour finalement découvrir qu'un module de gestion de stock chargeait son propre jquery d'autocomplétion dans tout le backoffice :

public function hookActionAdminControllerSetMedia($params) { 
	$this->context->controller->addJqueryPlugin('autocomplete');
}

J'imagine que le conflit venait d'ici, tout est revenu en ordre après sa suppression.

Link to comment
Share on other sites

  • Myo changed the title to [Résolu][1.7.8.5] Error: cannot call methods on autocomplete prior to initialization; attempted to call method 'ajax-tab.php'

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...