Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1640 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  pblm de concatenation...sans doute ^^

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pblm de concatenation...sans doute ^^

n°1517318
mIRROR
Chevreuillobolchévik
Posté le 20-02-2007 à 22:47:17  profilanswer
 

onClick='window.open('

mood
Publicité
Posté le 20-02-2007 à 22:47:17  profilanswer
 

n°1517323
mIRROR
Chevreuillobolchévik
Posté le 20-02-2007 à 22:58:15  profilanswer
 

je te montre ou est l erreur tu corriges comme un grand apres :/

n°1517328
mIRROR
Chevreuillobolchévik
Posté le 20-02-2007 à 23:09:03  profilanswer
 

[:spamafote]

 

t as édité entre temps
t as juste déplacé l erreur mais c est encore la meme :/


Message édité par mIRROR le 20-02-2007 à 23:11:29
n°1517333
mIRROR
Chevreuillobolchévik
Posté le 20-02-2007 à 23:30:10  profilanswer
 
n°1517412
Mxtrem
Posté le 21-02-2007 à 10:06:48  profilanswer
 

j'aurais fais :
 

Code :
  1. echo "<td id=center><a href='#' onClick=\"window.open('employeur/cv.php?num=".$fetch_requeteur['personne_num'].",'_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=1, width=670, height=);return(false)\"><img src=images/design/donnees.png alt=voircv /> </a></td>";


 
essai de voir ?

n°1517426
FlorentG
Unité de Masse
Posté le 21-02-2007 à 10:18:20  profilanswer
 

C'est quoi cette manie de vouloir concaténer quand y'a pas besoin ? Ensuite, avec des simples-quotes ce sera déjà plus clair :

Code :
  1. echo '<td id=center><a href="#" onClick="window.open(\'employeur/cv.php?num=', $fetch_requeteur['personne_num'], ',\'_blank\',\'toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=1, width=670, height=\');return(false)"><img src="images/design/donnees.png" alt="Voir le CV" /> </a></td>';


 
Ensuite y'a encore dix fois mieux, c'est de séparer code HTML et PHP, du style :
 

Code :
  1. // plein de code
  2. ?><td id="center"><a href="#" onClick="window.open('employeur/cv.php?num='<?php echo htmlspecialchars($fetch_requeteur['personne_num']) ?>','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=1, width=670, height=');return(false)"><img src="images/design/donnees.png" alt="Voir le CV" /> </a></td><?php
  3.  
  4. // suite du code


 
On pourra faire un fichier template séparé du reste du code. Ensuite pour le Javascript on peut encore faire mieux, là c'est pas accessible du tout. Sinon c'est quoi le id="center" sur le <td> ? Y'a-t-il un id="center" sur plein de <td> (ce qui serait évidemment invalide et dangereux), ou est-ce qu'il est que sur un ?

n°1517436
Mxtrem
Posté le 21-02-2007 à 10:29:17  profilanswer
 

je suis d'accord avec toi mais il est parfois bien plus pratique de concaténer, personnellement, je préfère

n°1517446
FlorentG
Unité de Masse
Posté le 21-02-2007 à 10:37:07  profilanswer
 

Mxtrem a écrit :

je suis d'accord avec toi mais il est parfois bien plus pratique de concaténer, personnellement, je préfère


Non :/ Ca sert à rien de concaténer si on peut afficher directement... Et si faut vraiment concaténer, surtout pour du gros HTML, le mieux et de passer par de l'output buffering, ce sera beaucoup plus rapide...

n°1517447
-ThX-
Not here anymore
Posté le 21-02-2007 à 10:38:07  profilanswer
 

Ca m'intéresse ce que tu dis FlorentG, tu peux expliquer en 3 mots en quoi consiste l'output buffering ?

n°1517449
FlorentG
Unité de Masse
Posté le 21-02-2007 à 10:41:23  profilanswer
 

Genre prend une boucle de base :

Code :
  1. $string = '';
  2. for($i = 0; $i < 1000; $i++) {
  3.  $string .= 'pouet';
  4. }


 
Vraiment pas performant, je t'explique pas. Avec output buffering, ça devient :

Code :
  1. for($i = 0; $i < 1000; $i++) {
  2.  echo 'pouet';
  3. }
  4. $string = ob_get_contents();


Beaucoup plus performant (pour d'importantes concaténations)

mood
Publicité
Posté le 21-02-2007 à 10:41:23  profilanswer
 

n°1517452
-ThX-
Not here anymore
Posté le 21-02-2007 à 10:43:51  profilanswer
 

Compris :jap: ( enfin pas pourquoi, mais le principe )

n°1517458
FlorentG
Unité de Masse
Posté le 21-02-2007 à 10:48:23  profilanswer
 

La concaténation de base va allouer de la mémoire pour chaque concaténation. Tu te retrouve avec une nouvelle allocation à chaque passage de la boucle, pas top.
 
L'output buffer lui initialise à la base un buffer de 40 Ko, renouvellable par tranches de 10 Ko, donc beaucoup plus efficient. Maintenant si c'est deux pauvres trucs à concaténer, c'est pas intéressant évidemment.

n°1517461
-ThX-
Not here anymore
Posté le 21-02-2007 à 10:51:28  profilanswer
 

Ok, merci pour l'explication.

n°1517519
Mxtrem
Posté le 21-02-2007 à 11:38:45  profilanswer
 

FlorentG a écrit :

La concaténation de base va allouer de la mémoire pour chaque concaténation. Tu te retrouve avec une nouvelle allocation à chaque passage de la boucle, pas top.
 
L'output buffer lui initialise à la base un buffer de 40 Ko, renouvellable par tranches de 10 Ko, donc beaucoup plus efficient. Maintenant si c'est deux pauvres trucs à concaténer, c'est pas intéressant évidemment.


 
 
je ne savais pas, merci :jap:

n°1517732
acorsa
Posté le 21-02-2007 à 15:41:42  profilanswer
 

Salut!
J'utilise des pop up dans mon appli et j'ai pas mal galéré...dc je devrai pouvoir t'aider.Essaye avec ce code
en remplaçant les bonnes valeurs...

Code :
  1. <form method=post action="popup.php" onsubmit="return open_popup(this);">
  2. ....
  3.   <a href=\"popup.php?query_id=$query_id\" onclick=\"return !window.open(this.href,null,'width=595,height=690, status=no, directories=no, toolbar=no, location=no, menubar=no, scrollbars=no, resizable=yes');\"><font color=\"blue\">voir mon cv</font></a> 
  4. ...
  5. </form>


et je te donne la fonction js:

Code :
  1. <script type="text/javascript">
  2. <!-- <![CDATA[
  3. function open_popup(t) {
  4.   t.target="odp";
  5.   odp = window.open("","odp","toolbar=no,menubar=no,scrollbars=yes,resizable=yes,height=700,width=620" );
  6.   odp.moveTo(0, 0)
  7.   odp.focus();
  8.   return true;
  9. }
  10. // ]]> -->
  11. </script>


Chez moi ça marche nickel, si tu as des questions n'hésite pas...
Avedici!;-)

n°1517895
FlorentG
Unité de Masse
Posté le 21-02-2007 à 18:03:22  profilanswer
 

Là on voit tout l'intérer de séparer encore plus les couches : structure et comportement.

 

Il faudrait que le lien soit de la forme :

Code :
  1. <a href="employeur/cv.php?num=1" class="popup"><img src="images/design/donnees.png" alt="Voir le CV"></a>
 

Ensuite un JS parcourerait tous les liens, et si une classe popup y est, ajouterait automatiquement l'évènement onclick et tout.

 

La règle est du même style que "on ne mixe pas la présentation et le code HTML". Si on utilise du CSS pour la présentation, on utilisera du JS __séparé__ pour le comportement. C'est-à-dire zéro onclick ou onmouseover ou truc du style, juste certaines class spécifiques qui seraient gérées par un JS externe. Et on oublie pas de gérer aussi un évènement au clavier, parce que la il ne se passe rien si on appuie sur entrée alors que le focus est sur le lien ;) ;)


Message édité par FlorentG le 21-02-2007 à 19:00:34
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  pblm de concatenation...sans doute ^^

 

Sujets relatifs
[resolu]gros doute par rapport à l'affichage écran d'un codecalcul poids dossier... pblm
pblm javascript simplepblm upload fichier, interdire certains...
Concaténation de chainepblm avec combo box et option selected
Ahhh les guillemets !!! ??? Concatenation, Replace, j'y arrive pas !une concatenation au lieu d'une addition
ptit bp de concatenation 
Plus de sujets relatifs à : pblm de concatenation...sans doute ^^


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR