Plusieurs javascripts sur une page html

Eléphanteau du PHP | 11 Messages

23 mars 2021, 23:47

Salut à tous!

j'ai un petit problème de javascript sur mon site web :
en fait, j'ai un tableau avec une pagination (grace à un script java). Jusque là tout va bien.

Il y a quelques temps, j'ai dû faire une barre de recherche avec autocomplétion sur toutes mes pages web, dont celle avec le tableau. Seulement, en intégrant cette ligne indispensable pour faire fonctionner l'autocomplétion
<script type="text/javascript" src="lib/prototype.js"></script>
plus moyen de voir la pagination...
J'ai essayé de déplacer cette ligne un peu partout dans mon code mais c'est soit l'un soit l'autre...
Quelqu'un aurait-il une idée?

Avatar du membre
Mammouth du PHP | 1564 Messages

24 mars 2021, 02:57

Commence à débuguer ton code en regardant dans la console de ton navigateur et voir si il y a des erreurs dans ta page:

https://documentation.concrete5.org/tut ... iew-errors

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 mars 2021, 11:33

Ctrl+Maj+i pour accéder aux outils de développements web sur Firefox et Chrome.
Puis onglet Console pour voir les erreurs javascript
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1564 Messages

24 mars 2021, 12:03

Directement Ctrl + Shift + K sur Firefox ou Command + Option + K (Mac)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

24 mars 2021, 15:40

Directement Ctrl + Shift + K sur Firefox ou Command + Option + K (Mac)
Ah, sympa, je ne connaissais pas le raccourci direct, merci !
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 11 Messages

24 mars 2021, 21:54

bon, d'après la console, 2 fichiers .js ne sont pas trouvés : dragdrop.js et slider.js
Connaitriez vous un site où je pourrais trouver ces 2 fichiers en open source???

Avatar du membre
Mammouth du PHP | 1564 Messages

24 mars 2021, 22:53

Si mais aucune certitude que ce soit le fichier dont tu as besoin, tout le monde peut nommer le fichier dragdrop.js et slider.js et y mettre ce qu'il veut dedans.

Ce sont des fichiers qui sont introuvables dans la page ? ils sont appelés dans prototype.js ? si appelés dans prototype.js, va sur le site de cette prototype pour trouver le pack et tenter de retrouver les fichiers manquants :wink:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 mars 2021, 17:18

Il faut effectivement déjà commencer par regarder qui appelle ces fichiers et pourquoi. Si c'est le fait d'ajouter la librairie prototype qui pose problème, c'est soit qu'il y a une erreur javascript (mais je simple fait d'inclure la librairie ne devrait pas avoir ce genre de conséquence, sauf si ton script est corrompu), soit qu'il y a une conflit de nom de variable / fonction entre ton script précédent et prototype. Dans ce cas, il faut les identifier pour les modifier si tu veux les faires cohabiter, ou partir sur une autre solution de gestion de la pagination basée sur prototype.

Et côté librairie, tu peux regarder script.aculo.us, la librairie s'appuie sur prototype et propose des fonctionnalités de drag&drop, etc...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 11 Messages

25 mars 2021, 20:26

bon en fait, ce n'est pas ces librairies le problème. je n'ai jamais utilisé cette fameuse console, je ne m'y connais pas en java!
en fait, quand je retire :
<script type="text/javascript" src="lib/prototype.js"></script>
ou que je place ça avant l'intégration du java pour la pagination, la pagination revient mais plus d'autocomplétion. Si je place ça après, l'autocomplétion marche, mais plus de pagination .
Dans le deuxième cas, Quand je lance cette pages il y a cette erreur qui apparait:
[Error] TypeError: null is not an object (evaluating '$('#DataTable').DataTable')
(fonction anonyme) (table.php:15)
j (jquery.js:2:27250)
fireWith (jquery.js:2:28059)
ready (jquery.js:2:29903)
J (jquery.js:2:30263)
Dans le cas ou c'est la pagination qui marche, voila l'erreur :
[Error] TypeError: this.element.setAttribute is not a function. (In 'this.element.setAttribute('autocomplete','off')', 'this.element.setAttribute' is undefined)
baseInitialize (controls.js:73)
initialize (controls.js:319)
(fonction anonyme) (prototype.js:24)
Code général (table.php:57)
qu'est ce que ça voudrait dire?

Avatar du membre
Mammouth du PHP | 1564 Messages

25 mars 2021, 20:43

je ne m'y connais pas en java!
Le JAVA à des similarités par rapport au langage JavaScript mais n'est pas le même, à ne pas confondre.
Tu peux dire "js" si ça t'embête d'écrire "javascript" en entier ;)

Si tu utilise jQuery autant en profiter, ne fais pas une définition d'attribut en js mais en jQuery:
this.element.setAttribute('autocomplete','off');
//devient:
$(this).attr('autocomplete','off');

Eléphanteau du PHP | 11 Messages

26 mars 2021, 00:30

j'ai fait ça mais la page met trop de temps à charger

Avatar du membre
Mammouth du PHP | 1564 Messages

26 mars 2021, 07:57

Quelle est l'URL ? peut-on voir ?

Eléphanteau du PHP | 11 Messages

26 mars 2021, 13:04

Petit hic : c’est un site interne...

Eléphanteau du PHP | 11 Messages

26 mars 2021, 15:17

je ne m'y connais pas en java!
Le JAVA à des similarités par rapport au langage JavaScript mais n'est pas le même, à ne pas confondre.
Tu peux dire "js" si ça t'embête d'écrire "javascript" en entier ;)

Si tu utilise jQuery autant en profiter, ne fais pas une définition d'attribut en js mais en jQuery:
this.element.setAttribute('autocomplete','off');
//devient:
$(this).attr('autocomplete','off');
Après cette ligne se trouve dans le fichier controls.js donc est ce qu’on peut faire ça?