[RESOLU] Php et jquery

Eléphanteau du PHP | 39 Messages

07 sept. 2012, 12:04

Bonjour,

J'ai une application web en PHP qui me génère un code html qui fais appelle à du Jquery / js.
Une fois généré je m'aperçois que le "Javascript" ne s'active pas dans la page. Par exemple le contrôle des champs dans un formulaire qui est traité en "Javascript" ne fonctionne plus.
En revanche, lorsque je duplique le code html généré par mon application dans un fichier html lambda et que j'appelle ce dernier, là ça fonctionne...

Auriez - vous une idée du pourquoi?
Modifié en dernier par damien01 le 07 sept. 2012, 15:06, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

07 sept. 2012, 13:58

Mauvaise intégration de ton code html/js dans ta page php. ;)
Montres nous un peu de code et on saura peut être t'en dire plus.

ViPHP
ViPHP | 4039 Messages

07 sept. 2012, 14:42

Quand tu écris "Java Script", est-ce que c'est réellement du Javascript ou est-ce autre chose qui est supposé l'être, ou qui remplit, au petit bonheur la chance, la même fonction ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 39 Messages

07 sept. 2012, 15:06

Quand tu écris "Java Script", est-ce que c'est réellement du Javascript ou est-ce autre chose qui est supposé l'être, ou qui remplit, au petit bonheur la chance, la même fonction ?
Oups, j'ai plus l'habitude de dire js que javascript => je corrige.
Sinon j'avoue ne pas trop savoir non plus, j'ai un template dans lequel se trouve du js / jquery /html5 / css3.
Je me suis inspiré d'un des exemples du template où il y avait un formulaire. Voyant que ça ne fonctionnait pas j'ai fait un copier coller du code me disant que j'ai du mal spécifier une valeur mais rien n'y fais.

Mauvaise intégration de ton code html/js dans ta page php. ;)
Montre nous un peu de code et on saura peut être t'en dire plus.
Et pourtant, lorsque mon application a généré la page, si je prends le code source (html), je copie son intégralité dans un fichier html et je l'exécute, là il fonctionne...

Je ne sais pas trop comment procéder...

Je suis nul en js, je ne suis pas l'auteur du code JS, j'ai défini les sources:
    <script src="../js/jquery-1.6.4.min.js"></script>
    <script src="../js/script.js"></script>
Et également j'ai copier la portion de code du formulaire de l'exemple, à savoir:
<fieldset>
                    <label class="name">
                        <input type="text" value="Nom:">
                        <span class="error">*Le nom saisit n'est pas valide.</span>
                        <span class="empty">*Le champ doit être remplit.</span>
                    </label>
                    <label class="phone">
                        <input type="text" value="Telephone:">
                        <span class="error">*This is not a valid phone number.</span>
                        <span class="empty">*Le champ doit être remplit.</span>
                    </label>
                    <label class="email">
                        <input type="text" value="E-mail:">
                        <span class="error">*This is not a valid email address.</span>
                        <span class="empty">*Le champ doit être remplit.</span>
                    </label>
                    <label class="message">
                        <textarea>Message:</textarea>
                        <span class="error">*The message is too short.</span>
                        <span class="empty">*Le champ doit être remplit.</span>
                    </label>
                    <div class="btns"><a class="button" data-type="reset">Vider</a><a class="button" data-type="submit">Envoyer</a></div>
                </fieldset>

ViPHP
xTG
ViPHP | 7331 Messages

07 sept. 2012, 15:58

Mauvaise intégration de ton code html/js dans ta page php. ;)
Montre nous un peu de code et on saura peut être t'en dire plus.
Et pourtant, lorsque mon application a généré la page, si je prends le code source (html), je copie son intégralité dans un fichier html et je l'exécute, là il fonctionne...
C'est donc bien une mauvaise intégration. Tu fais joujou avec la fonction include() de PHP non ?
Auquel cas attention aux chemins. ;)

Car PHP ne peut être incriminé, pour lui ce n'est que du texte qui ne sert à rien et qu'il n'interprète pas. :mrgreen:

ViPHP
ViPHP | 2577 Messages

07 sept. 2012, 16:06

Entre le fichier original et le fichier html copié, je me dit que le fait que ce soit un fichier .html force à assimilé à du text/html.

Peux être que ton html à une entête mal formée ?

Eléphanteau du PHP | 39 Messages

07 sept. 2012, 16:40

Mauvaise intégration de ton code html/js dans ta page php. ;)
Montre nous un peu de code et on saura peut être t'en dire plus.
Et pourtant, lorsque mon application a généré la page, si je prends le code source (html), je copie son intégralité dans un fichier html et je l'exécute, là il fonctionne...
C'est donc bien une mauvaise intégration. Tu fais joujou avec la fonction include() de PHP non ?
Auquel cas attention aux chemins. ;)

Car PHP ne peut être incriminé, pour lui ce n'est que du texte qui ne sert à rien et qu'il n'interprète pas. :mrgreen:
Mais pourtant les chemins sont bon (enfin je crois) car depuis les chemins, spécifiés dans la page html générée, j'atteins les sources.

Eléphanteau du PHP | 39 Messages

07 sept. 2012, 16:50

Entre le fichier original et le fichier html copié, je me dit que le fait que ce soit un fichier .html force à assimilé à du text/html.

Peux être que ton html à une entête mal formée ?
Je définis dans mon application l'entête.
$app->httpResponse()->addHeader("Content-Type: text/html; charset=utf-8");

ViPHP
xTG
ViPHP | 7331 Messages

07 sept. 2012, 18:19

Tu utilises donc un framework qui n'a s'il est bien construit aucun fichier PHP dans le dossier des ressources et scripts !
Donc ton chemin est bien mauvais :
../js/jquery-1.6.4.min.js
Cela devrait plutôt être un truc du genre :
web/js/jquery-1.6.4.min.js
Ou autre dossier ou succession de dossier du genre par rapport à ton bootstrap.

Eléphanteau du PHP | 39 Messages

07 sept. 2012, 19:33

Tu utilises donc un framework qui n'a s'il est bien construit aucun fichier PHP dans le dossier des ressources et scripts !
Donc ton chemin est bien mauvais :
../js/jquery-1.6.4.min.js
Cela devrait plutôt être un truc du genre :
web/js/jquery-1.6.4.min.js
Ou autre dossier ou succession de dossier du genre par rapport à ton bootstrap.
J'avoue être perdu. Pour moi le chemin était bon puisque depuis le navigateur, d'après le chemin spécifié on accédait aux sources JS et Jquery.
Maintenant je me dis: si le chemin est mauvais pourquoi le "quasi" même chemin pour les images quant à lui fonctionne??? car les images se chargent correctement...

Le Framework fonctionne effectivement une arborescence au dessus.

Voici grosso-modo ce que j'ai:

MonAppli/
Bibliothèque/
...
Web/ =>
--------js/
--------images/
--------frontend.php => le fichier qui va contenir l'application et donc également la page
--------backend.php
--------.htaccess => pour url rewriting

ViPHP
xTG
ViPHP | 7331 Messages

07 sept. 2012, 19:44


Eléphanteau du PHP | 39 Messages

07 sept. 2012, 19:53

Désolé, si je ne donne pas toutes les infos ça risque de pas aller.

Donc non, apache est configuré pour ne lire que les fichiers présents dans /web/

Ce qui ne gène aucunement l'interprétation des fichiers dans toute l'arborescence par PHP.

ViPHP
xTG
ViPHP | 7331 Messages

07 sept. 2012, 20:00

Donc http://domaine/frontend.php ?
Auquel cas le chemin est :
js/jquery-1.6.4.min.js

Eléphanteau du PHP | 39 Messages

07 sept. 2012, 20:12

Donc http://domaine/frontend.php ?
Auquel cas le chemin est :
js/jquery-1.6.4.min.js
J'avais mis '../' car avec l'url rewriting j'avais par exemple MonAdresse/Contacts/

Maintenant je peux mettre 10 ../../ tu seras d'accord pour dire que cela ne change rien du fait que le DocumentRoot définit dans le fichier de configuration d'Apache est [...]/Web/.

En revanche c'est vrai que c'est pas très logique de le laisser.

ViPHP
xTG
ViPHP | 7331 Messages

07 sept. 2012, 20:21

Arf de l'url-rewriting...
Le mieux est encore d'ajouter une règle pour ne pas faire d'url-rewriting pour les ressources statiques.
Mais là je passe mon chemin je suis pas calé...