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

JavaScript Discussion :

Passage d'un String PHP dans fonction javascript et quotes


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 50
    Points
    50
    Par défaut Passage d'un String PHP dans fonction javascript et quotes
    Bonjour,

    J'ai pas mal recherché sur le web, mais sans grand résultat. En faite je passe dans une de mes fonctions JavaScript un String PHP, le souci c'est qu'il me faut un formatage spécial qui comprend entre chaque informations une virgule. Je me dit qu'entre quotes le string ne posera pas de souci, mais si...

    Pour être plus clair, je passe mon String PHP à ma fonction javascript sous cette forme là :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input id="client" name="nomClient" value="" onFocus="javascript:rechercheChampInput('client',<?php echo $tabClientJavascript; ?>);"/>
    </div>

    Le souci c'est que je dois récupérer mon String sous cette forme là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Information 1',
    'Information 2',
    'Information 3',
    'Information 4',
    'Information 5',
    'etc...',
    Je ne peux pas mettre mon $tabClientJavascript entre double quotes du fait que je les utilisent déjà pour déclarer l'évenement onFocus, et les simples quotes pour les informations de mon String. Je ne sais trop comment faire pour pouvoir utiliser mon String sous la forme que je souhaite.

    Je pourrais aller plus vite et mettre directement mon String dans mon javascript, mais elle n'est pas sur la même page, et en plus je dois faire appel plusieurs fois à celle-ci, donc ça m'embête de l'écrire plein de fois.


    La construction de mon tableau (qui est devenu un string au final) se fait comme ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Initilisation de la variable $client, qui contiendra l'ensemble des pièces du stock
    $client = "";
     
    //Boucle qui permet de formater la variable "$client" pour la soumettre au tableau javascript pour le champ de recherche 	instantané
    for ($i=0; $i < count($infoClient); $i++) { 
    	$client .= "'".$infoClient[$i]['nom']." - ".$infoClient[$i]['ville']." - ".$infoClient[$i]['telephone']."', "; 
    }
     
    //Suppression de la dernière virgule pour la variable "$client"
    $tabClientJavascript = substr($client,0,-1);


    Mais je n'arrive pas bien sur parce que les virgules pause problèmes et j'ai tenté pas mal de choses avec les quotes, les backslashes et autres mais sans résultat.

    J'ai bien tenté un replace, mais là pareil je n'arrive pas au résultat que je souhaite.

    Auriez vous une idée?

    Par avance merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je me dit qu'entre quotes le string ne posera pas de souci, mais si...
    Sauf que dans le code que tu montres, il n'y en a pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rechercheChampInput('client',<?php echo $tabClientJavascript; ?>);
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rechercheChampInput('client','<?php echo $tabClientJavascript; ?>');
    ça marcherait probablement mieux.

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    en php passe par un array et implode()
    ou passe par json_encode ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 124
    Points : 50
    Points
    50
    Par défaut
    Tout d'abord merci de me répondre.

    Bovino j'ai essayé les quotes comme tu as mis, mais cela ne fonctionne pas car mon string comporte déjà des quotes, ce qui fait qu'elles sont considérées comme des ouvrantes ou fermantes.

    Voilà en faite ce que m'affiche la source de la page dans la déclaration de mon onFocus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onFocus="javascript:rechercheChampInput('client','Information 1','Information 2','Information 3','Information 4','Information 5')
    En faite là je n'ai que 2 paramètres, "client" en premier, et le second c'est logiquement "'information 1','information 2','information 3','information 4', 'information 5'".
    Bien sur il considère qu'il y a plusieurs paramètres sous cette forme là, mais je n'arrive pas à faire en sorte qu'il ne la considère uniquement en un paramètre unique.
    J'ai tenté avec les doubles quotes, mais du faite que je les utilisent devant "javascript:rechercheChampInput()", je ne peux pas m'en servir. J'ai tenté les backslashes mais sans résultat.

    Ensuite SpaceFrog tu penses que la façon de formater mon String n'est pas bonne et que le problème pourrait venir de là? Parce qu'à la fin je récupère mon string correctement, alors peut être que je ne suis pas dans le bon chemin?

    Encore merci de vos réponses

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127

Discussions similaires

  1. php dans fonction javascript
    Par gunsailor dans le forum Langage
    Réponses: 9
    Dernier message: 07/09/2010, 11h21
  2. Insertion variable PHP dans fonction javascript
    Par hisin dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/06/2010, 16h58
  3. array php dans fonction javascript?
    Par vidzo dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 29/09/2009, 09h29
  4. Utiliser le résultat d'un fichier php dans fonction javascript
    Par theshark85 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 23/07/2009, 12h07
  5. [PHP-JS] passage d'une variable php à une fonction javascript
    Par pimpmyride dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/04/2006, 16h17

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