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] La fonction intval() me renvoie toujours 0


Sujet :

Langage PHP

  1. #21
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    probleme de transmission de js à php
    Si tu fais ca en Javascript, pas la peine d'envoyer des données à PHP, Javascript sait aussi faire des additions et des multiplications.
    Il suffirait d'appeler une fonction au chargement de ta page qui redimensionnerait, de facon proportionnelle, une image.

    Sinon tu peux faire ca en PHP, sans passer par Javascript, comme indiqué plus haut.

    d'un div qui existe déja.
    Il n'existe pas au moment où le script PHP est executé.

  2. #22
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par ben_ghost Voir le message
    Déjà ... y a un truc qui va pas là ...


    Ce serait plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('node_Support' ).style.width

    si si tout va bien, c'est pas la largeur de ''node_Support' ' que je veux mais bel et bien celle de supportVignette; 'node_support' est le nom de la variable à recuperer en php via $_POST['node_support']

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par ThomasR Voir le message
    Sinon tu peux faire ca en PHP, sans passer par Javascript, comme indiqué plus haut.
    .
    c'est exactement ce que je cherche a faire depuis 2 jours, donc peut-tu m'indiquer comment récuperer les tailles de mon div qui sert de support sans passer par javascript ?

  4. #24
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Bon je suis sur une piste:

    1 - Une fonction javascript pour récuperer les valeurs H et W de l'objet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function getWidthAndHeightOfaNode(anId){
    	aW = document.getElementById(anId).offsetWidth;
    	return aW;
    }
    2 - Après la création du div support, je rajoute un bout de js qui va appeler la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div id="supportVignette" ></div>
    <script>
    aW = getWidthAndHeightOfaNode('supportVignette');
    document.write ('<input type="hidden" name="champs" value="' + aW + '">');
    </script>
    3 - et dans ma fonction php de resize:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $aWidthMax= ($_POST['champs']);
    echo intval($aWidthMax);
    Et la ça fonctionne (ça me ressort bien la bonne valeur numerique mais uniquement sous FF, sous IE ça me sort 0 ????) mais pas sour IE

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Bon ben pour ceux que ça interesse j'ai enfin trouvé la solution à ce que je voulais faire; voici comment procéder:

    1- Je construit ma page "affichage.php" au sein d'un formulaire que j'appelle "form_global" avec comme action="page de traitement.php";
    Dans celui-ci, j'insére mon div "supportVignette".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <form id="form_global" name="form_global" method="post" enctype="multipart/form-data" action="page de traitement.php">
       ---Bla bla bla ---
       ---Bla bla bla ---
       ---Bla bla bla ---
       ---Bla bla bla ---
    <div id="supportVignette"></div>			
     </form>
    2 -- En toute fin de construction de la page, juste avant de refermé le formulaire, je récupère les données de hauteur et de largeur dans un champ caché (qui enverra les valeurs via un post):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script>
    document.write ('<input type="hidden" name="champsWidth" value="' +supportVignette.offsetWidth+'">');
    document.write ('<input type="hidden" name="champsHeight" value="' +supportVignette.offsetHeighth+'">');
    </script>
    3 -- Dans ma page "traitement.php", je réceptionne les valeurs et les envoi en parametres à ma fonction de resize

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    $aWidthMax= ($_POST['champsWidth']);
    $aHeightMax= ($_POST['champsHeight']);
    $aSizePic = resizePic($aWidth,$aHeight,$aWidthMax,$aHeightMax);
     
    //Fonctions de retaillages d'une images
    //en fonctions de la taille d'un support
    function resizePic($aWidth,$aHeight,$aWidthMax,$aHeightMax){
    	// Taille maxi
    	$aWidthMax=(intval($aWidthMax));
    	$aHeightMax=(intval($aHeightMax));
     
     
    	//Taille de l'image
    	$aWidthPic=$aWidth;
    	$aHeightPic=$aHeight;
     
    	//Calcul du ratio
    	switch ($aWidthPic)
      		{
      		case ($aWidthPic > $aHeightPic) : 
    		$aRatio = floor(($aHeightPic*100)/$aWidthPic);
    		$aW = $aWidthMax;
    		$aH = floor($aWidthMax*$aRatio/100);
     
    		break;
        	case ($aWidthPic < $aHeightPic) :
    		$aRatio = floor(($aWidthPic*100)/$aHeightPic);
    		$aW = floor(($aHeightMax*$aRatio)/100);
    		$aH = $aHeightMax;
    		break;
       		case ($aWidthPic < $aHeightPic) : 
    		$aRatio = 100;
    		$aW = $aWidthMax;
    		$aH = $aHeightMax;
    		break;
       		}
     
    		return array($aW,$aH);
    	}

    Voila voila, je me suis bien pris la courge avec ça et suis fier d'avoir trouver une solution qui au départ semblait impossible; mais comme ce mot est banni de mon vocabulaire j'ai poursuivi mes investigations.

    Y 'a t-il une procédure pour marquer ce sujet comme résolu ou faut-il juste changer le titre ? (je vais essayé...)

    Merci à ceux qui ont pris le temps de se pencher sur le problème

  6. #26
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Sauf que ta solution oblige de poster le formulaire, ca change tout le contexte.

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Et alors ou es le problème ?
    Le formulaire me sert déja pour saisir d'autres données donc j'en ai besoin mais au dela de ça, c'est juste une soumission (que tu peux déclencher via le code, sans faire cliqué l'utilisateur) qui envoi par post des données js qu'on peut récupérer par php (comme proposé dans la premiere page des posts ci dessus) et comme il y a des solutions pour conserver sans problème les données déja saisies, visuellement ça ne change strictement rien; et quand bien même il n'y aurait pas d'autres données saisies c'est la solution la + usitée apparemment (depuis le début de la semaine j'épluche le web et visiblement tout le monde fait ça pour transmettre les donnée ou via l'url au choix); en tout cas elle fonctionne sans soucis et n'est pas très compliqué à mettre en oeuve, maintenant si tu as une autre solution je suis preneur

  8. #28
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Et alors ou es le problème ?
    Tu m'as mal compris, je ne te dis pas que ca pose un problème, à toi de voir si la solution correspond à tes besoins.

    C'est juste que ca change tout le fait que tu sois dans un contexte de formulaire, évidemment tu pouvais poster les dimensions du block via des <input type="hidden" />. Meme si c'est un peu crado.

    'Fin bref.

    Bonne journée.

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    ça c'est clair que tout ces mélanges de script c'est crado; c'est une des premieres réflexions que je me suis faites lorsque j'ai commencé le php (il y a 2 mois) c'est que c'est puissant mais pas très glamour !!!!

  10. #30
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Moi ce que je ne comprend absolument pas c'est pourquoi tu as besoin de passer par php alors que c'est juste de la mise en forme.

    En tout cas comme l'a dit ThomasR, ça n'a plus grand chose à voir avec le contexte de départ, donc pour l'histoire de l'impossibilité du mélange PHP JS, ça tient toujours Tu as juste contourné le problème.

    Enfin bref ce n'est pas la question. Ce qui est sûr c'est que tout ce que tu fais faire à PHP, javascript est capable de le faire et ce serait sûrement beaucoup plus propre et moins prise de tête.

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par Sylvain71 Voir le message
    Moi ce que je ne comprend absolument pas c'est pourquoi tu as besoin de passer par php alors que c'est juste de la mise en forme.
    .
    Parceque c'est dans un contexte entierement dynamique avec base de donnée
    Citation Envoyé par Sylvain71 Voir le message
    En tout cas comme l'a dit ThomasR, ça n'a plus grand chose à voir avec le contexte de départ, donc pour l'histoire de l'impossibilité du mélange PHP JS, ça tient toujours Tu as juste contourné le problème.

    Enfin bref ce n'est pas la question. Ce qui est sûr c'est que tout ce que tu fais faire à PHP, javascript est capable de le faire et ce serait sûrement beaucoup plus propre et moins prise de tête.
    Moi ce que je ne comprend pas c'est que depuis que je pose la question tout le monde me dis t'aurais pas du faire comme ça mais personne ne me dis comment faire, donc je réitère ma question une nième fois concernant la problématique principale,et en précisant que je suis près a faire tout en php si c'est possible : comment récuperer la largeur et hauteur d'un div (qui sont donc susceptibles d'etre changeantes) pour les passer en parametres dans une fonction php ?????

  12. #32
    Membre régulier Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Points : 119
    Points
    119
    Par défaut
    Pourquoi ne pas tout gérer en JavaScript ?
    Passer par le PHP ne me semble pas nécessaire dans ton cas... et quand bien même, tu pourrais utiliser le XMLHttpRequest pour aller chercher des données plus complexes générées en PHP.

    Au final, je ne vois, comme les autres, pas pourquoi tu veux passer par du PHP pour des opérations que le JavaScript peut gérer à lui seul.

  13. #33
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    Parce que c'est un site de vente en ligne et que la technologie principalement employé est du php, que je suis en train de faire le formulaire administrateur d'ajout de produits avec toutes les caractèristiques + un petit editeur de texte avec gestion de couleur, font....+connexions sécurisé aux bases....bref que c'est un gros projet très complexe en php et que, je n'ai ici eu besoin du javascript que pour transmettre une valeur, because apparemment c'est pas possible en php. Donc que je ne vais pas développer ça en js; et que j'avais besoin de cette variable au sein d'une page php...maintenant j'arrête de me justifier car j'ai l'impression que vous jouer sur les mots la...et je rappel encore que depuis 2 jours que j'ai poser la question, personne ne m'a dit comment faire réellement, mais tout le monde sait me dire t'aurais pas du faire comme ça....donc je me suis cassé lé cul a trouver une solution et une fois que c'est trouvé on me dis que c'est pas comme ça qu'il fallait faire, donc y'en a un peu marre la,; oui c'est peut etre pas treès académiques, ouis il y a surement mieux mais ça fait 2jours que je demande donc si vous voulez pas dire comment faire qu'est ce que j'y peu, moi faut que j'avance car le client, il s'en branle que ce soit avec js ou php, lui il veut que ça marche

  14. #34
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2005
    Messages : 419
    Points : 532
    Points
    532
    Par défaut
    Mais la solution on te l'a donnée !
    Ta fonction de redimensionnement en php tu as juste à la retranscrire en javascript et voilà ! Il n'y a quasiment rien à changer, la syntaxe est presque la même.

    Ensuite ce n'est pas parce que ton système tourne sur PHP qu'il faut absolument passer QUE par lui. Surtout pour des tâches qui ne le concernent pas. PHP et Javascript n'ont rien à voir et ça j'ai l'impression que tu as du mal à le comprendre et si je dis ça c'est pas pour t'enfoncer c'est pour t'aider donc pas la peine de s'énerver. A toi de voir si tu veux progresser ou si tu veux continuer à faire des trucs qui tiennent avec des bouts de ficelle. Parce que oui ton client veut son système rapidement, mais ton client va aussi sûrement te demander dans quelques temps de faire évoluer son système. Et là tu vas bien galérer. Enfin bon après ça sort du cadre de ce forum ça tient plus de la gestion de projet.

    Bon pour résumer :
    tu arrives à récupérer les dimensions de ta div en javascript et tu as une fonction PHP qui te fait un calcul et que tu peux retranscrire simplement en JS. Donc autant le faire tout en JS.
    Tu récupères les dim de ta div, une fois que c'est fait tu appelles ta fonction js qui te recalcule les bonnes tailles. Et une fois que c'est fait tu donnes en JS les bonnes dimensions à l'élément que tu veux avec quelque chose de ce genre :
    document.getElementById('tonElement').style.width = nouvelleLargeur + 'px';

  15. #35
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    ben c'est ce que j'ai fait sauf que j'ai foutu 4 lignes de code javascript dans un echo et que j'ai une fonction de calcul (que l'un ou l'autre savent faire),donc si c'est juste ça , franchement c'est vraiment pas la mort d'un homme à maintenir

  16. #36
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    J'ai peut-être mal compris ton problème.

    Mais si tout cela se fait dynamiquement, pourquoi ne pas rester en js pour le redimensionnement de tes div ?

    As-tu bien saisi que tout ce qui est fait côté utilisateur en dehors d'un 'submit form', il est préférable de le gérer par js ?

    PHP ne s'exécute lui que lorsque la page se recharge... C'est la seule 'interactivité' qu'il supporte avec le client.

    PS : Oups, je n'avais pas vu qu'il y avait 3 pages de réponses lol. Probable que du coup, je rabâche ce que quelqu'un t'a déjà dit. Je vais vérifier.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  17. #37
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    apparemment en plus c'est pas conseillé de mettre du js
    LeFred... pourquoi dis-tu ça à un moment donné ?

    C'est un gros projet PHP, bon, grand bien lui fasse.

    Il ne faut pas abuser du js, c'est certain, et trop de sites de débutants (et de jeunes) multiplient les gadgets js jusqu'à l'écoeurement.

    Mais il faut quand même comprendre que le couple PHP/JS pour les raisons que je mets dans le post ci-dessus se marie parfaitement.

    Un exemple des plus courants :

    Un contrôle de saisie. Tu veux faire remplir un formulaire, JS gèrera tout ce qui est contrôle de saisie, correction et blocage tant que c'est mauvais, PHP gèrera les données valides définitives.

    Quand j'ai débuté en PHP (je te parle d'il y a six mois lol), je voulais faire tout le contrôle de saisie en PHP (en partie parce que j'avais les mêmes préjugés que toi anti-js, en partie parce que je ne connaissais pas js)... j'ai réussi. Mais c'est vouloir faire comment dire... de la messagerie instantanée avec une messagerie mail... Dans ma comparaison, msn ou aim, c'est js, la messagerie mail, c'est PHP... Ils sont tous les deux bien, juste pas dédiés aux mêmes types de tâches.

    Bon, tu as fini et tu es content de toi... OK... Mais ce serait bien que tu écoutes oreilles grandes ouvertes les gens de ce forum quand ils disent un truc. La plupart sont fiables et compétents.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. fonction intval ne fonctionne pas toujours ?
    Par ninikkhuet dans le forum Langage
    Réponses: 2
    Dernier message: 24/12/2009, 10h23
  2. Réponses: 2
    Dernier message: 16/04/2005, 20h24
  3. [PHP-JS] pb lecture script php dans une fonction au démarrage
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/02/2005, 15h07
  4. [PHP-JS] Arguments PHP d'une fonction javascript
    Par Néo-Tony dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2004, 12h06
  5. Fonction utilisateur qui renvoie la date du jour
    Par falcon dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/12/2004, 11h03

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