IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] Combiner un document.write a du code PHP [FAQ]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut [PHP-JS] Combiner un document.write a du code PHP
    Bonjour,

    voila j'ai un petit soucis de formatge du texte, a savoir que dans mon texte PHP, a chaque fois que du texte apparait ou autre, je dois le formater à l'aide d'un document.write();, pour l'afficher en Javascript. pour du texte en HTML ca donne ca par exemple :

    document.write('test');

    Maintenant si j'ai par exemple ce code la en PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $html = '<title>'.$GLOBALS["strSubscribeTitle"].'</title>';
    return §html;

    Auriez vous une idée de la syntaxe aappliquer pour combiner le document.write au code PHP ??

    Merci d avance de votre aide, car c 'est un peu la galere la

  2. #2
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Moi, j'aime pas facebook.

    Musiciens de France

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par Commodore_Psykopate

    Euh oui ....?


    je recapitule : j'ai donc une page JSP, avec dedans une balise <script src="file.php3"></script> (C'est une contrainte je ne peux pas faire autrement, et ne peux pas non plus utiliser des <IFRAME>). Mais dans file.php3 ce n'est que du code PHP pour le moment, avec cette syntaxe la par exemple pour afficher les données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $html = '<title>'.$GLOBALS["variables"].'</title>';
    return §html;
    donc un "echo" marcherai en php, mais la file.php3 est apelé par une balise javascript, donc je pense etre oblige d'utiliser un document.write pour afficher les données resultant de file.php3. Et je n'ai pas trouvé la syntaxe pour bien faire ca. Merci d'avance de votre aide.

  4. #4
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    je ne sais pas si c'est possible...

    Moi, j'aime pas facebook.

    Musiciens de France

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    As-tu au moins essayé le echo ? Je te promets que ça va fonctionner.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Cette syntaxe la fonctionne bien pourtant :

    document.write('<? echo "test en PHP"?>');
    mais je me prends des erreurs de syntaxe pour ca :

    $html = '<title>'.$GLOBALS["variables"].'</title>';

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Tu confonds malheureusement la chronologie des évènements...
    PHP est un langage exécuté sur le serveur et qui produit généralement un fichier HTML envoyé au navigateur Web. Cette page Web peut contenir du code JavaScript, qui est exécuté sur le client et donc après le code PHP.

    Conclusion : document.write('<?php echo "bouh;"); ?>'); résultera en un fichier HTML contenant une balise PHP inutile (puisque PHP aura déjà terminé son travail) et invisible (puisque la balise <?php n'est pas une balise HTML valide, le navigateur Web va l'occulter).
    À l'inverse, <?php echo 'document.write("bouh");'); ?> résultera en un fichier HTML contenant le mot "bouh". Note que cette syntaxe est absurde, car elle demande à JavaScript d'afficher une chaîne alors que PHP peut s'en charger seul : <?php echo 'bouh'; ?>

  8. #8
    Membre confirmé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Points : 632
    Points
    632
    Par défaut
    ne met pas le tag delestage, mets le plutot en resolu.

    ça peut toujours servir a d'autres. Moi-meme j'ai appris qqch ici

    Moi, j'aime pas facebook.

    Musiciens de France

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Depuis le temps qu'on le rabâche...
    Ça va sûrement intégrer la FAQ :/

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    merci du conseil, j'ai mieux compris la theorie..mais en pratique, il faut donc utiliser <?php echo 'document.write("bouh");'); ?> pour afficher bouh, mais comment cela s'applique t-il a du code php comme cela par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $html = '<title>'.$GLOBALS["variables"].'</title>';
    return §html;
    J'ai tenté de mettre les document.write pres des balises title et essayant differentes syntaxes, sans succes :/

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Dans ton cas, il s'agit simplement de remplacer "return" par "echo".

    [Edit] Et quel est ce signe § au milieu du script ? C'est le dollar $ qui identifie les variables.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Re, bien désolé mais je me prends tjs des parse error, en ayant testé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo 'document.write("$html");');
    ca ne passe pas :/ .

    De plus le "return html" renvoie plusieurs valeurs, telle que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        $html = '<title>'.$GLOBALS["Title"].'</title>';
        $html .= $data["header"];
        return $html;
    Et dans ce cas la, le document.write sera t'il appliqué a chaque sortie de la variable $html, ou juste le premier qu il croisera, comment cela se passe t il ?

  13. #13
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Alors...

    "echo" peut prendre des parenthèses ou ne pas en avoir, à toi de choisir mais ne mixe pas les deux solutions. C'est ton erreur de syntaxe : tu as une parenthèse fermante sans l'avoir ouverte.

    Par ailleurs, ta variable $html n'a pas plusieurs valeurs. Le fait est que sa valeur lui est affectée en plusieurs fois, mais elle n'en a qu'une. Cela s'appelle la concaténation.

    Je ne saurais que trop te conseiller de consulter une bonne paire de tutoriels avant de continuer à poster ici. Ce forum n'est pas adapté pour t'apprendre à faire tes premiers pas en PHP, par contre nous avons une série de cours qui pourront tout à fait convenir (cf. ma signature).

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Re bonjour, je me suis surement mal exprimé hier et manque de pratique, mais j'aimerai vraiement comprendre et resoudre ce probleme de syntaxe, j'ai un peu avancé mais je ne vois vraiement pas comment résoudre cela.
    J'ai donc dans la page.php3 cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      $html .= $data["header"]; 
      $html .= $data["intro"]; 
      $html .= '<br><br><table border=0>';
      $html .= ListAttributes ($attributes,$attributedata, $data["htmlchoice"],0,    $data['emaildoubleentry']);
      return ("document.write(\"" . $html . "\");");

    Jusqu'a la balise Border pas de soucis, mais arrivé à ListAttributes, msg d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      unterminated string literal
      (line 17)
      document.write("<title>listes</title>Inscription<br><br><table border=0>
    Et dans le debogeur JSP il m'affiche ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    17  document.write("<title>listes</title>Inscription<br><br><table border=0>
    18 <tr><td><div class="required">email</div></td>
    19 <td class="attributeinput"><input type=text name=email value="" size="40">
    20 <script language="Javascript" type="text/javascript">addFieldToCheck("email","email");</script></td></tr><input type=hidden name="htmlemail" value="1">
    21");

    Erreur de syntaxe quelque part, mais pas trouvé. J'ai essayé de mettre un addslashes pour echapper les caracteres, sans succes.
    Je me demande donc bien comment faire pour afficher mes diverses valeurs de $html dans le document.write, sans qu'il y'ai une erreur de syntaxe.
    Qui aurait une idée please ? Merci d'avance de votre aide, je retourne aux tutos me oO.

  15. #15
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Pourquoi t'obstines-tu à utiliser "return" alors que tu n'es pas dans une fonction ? L'instruction permettant d'envoyer du texte au navigateur est echo.

    Par ailleurs, ta variable $html n'est plus initialisée. Tu commences par la concaténer, ce qui suppose qu'elle ait une valeur préalable, ce dont je doute.
    Ajoute ceci en début de script pour connaître tes erreurs de programmation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error_reporting(E_ALL | E_STRICT);
    Enfin, je te recommande la lecture de ce tutoriel : http://pbnaigeon.developpez.com/tuto...phe-guillemet/

    [Edit] Une variable n'a qu'une seule valeur. Si tu ne suis pas les conseils que tu reçois, à quoi bon en demander ?

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 181
    Points : 38
    Points
    38
    Par défaut
    Merci du lien, je vais aller voir ca, en esperant que ca me fasse un peu avancer.

  17. #17
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    Erreur de syntaxe quelque part, mais pas trouvé.
    document.write("........."); et à l’intérieur class="required" --> même double cotes --> utiliser (par exemple) document.write('.........');

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    12 plus tard, on peut espérer qu'il avait trouvé avant mais merci quand même
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  19. #19
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,
    je cherchais une solution et je suis tombé sur ce post , qui n'était pas solutionné !!!
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

Discussions similaires

  1. [PHP-JS] utiliser un tableau javascript dans un code php
    Par lenstoi dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/08/2007, 13h50
  2. Réponses: 2
    Dernier message: 16/07/2007, 16h04
  3. [PHP-JS] Est il possible d'intégrer du code PHP dans du code javacript ?
    Par bilou95 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/07/2007, 09h05
  4. [PHP-JS] où est l'erreur dans ce code php
    Par jsdar dans le forum Langage
    Réponses: 1
    Dernier message: 06/04/2007, 19h17
  5. [PHP-JS] problème avec mon document.write
    Par kevinf dans le forum Langage
    Réponses: 18
    Dernier message: 06/10/2006, 06h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo