Utiliser du javascript avec php

Répondre
caporga
le 19/11/2008 à 18:44
caporga
bonjour à tous,
voilà un nouveau souci : je souhaiterai créer une image sélectionnable comme le principe des boutons radio mais avec une image (140px/140px) et je complique le truc avec une image en bdd... j'ai bien trouvé un code pour le première partie en javascript mais je n'ai aucune idée de la syntaxe compatible avec du php (juste echo'<javascript...)

comment utiliser le code ci-dessous tout en remplaçant les images "CocheOui.gif et CocheNon.gif" par d'autre en bdd ?

merci

function PARC (Nom,Typ,Oui,Non,Eta) //—— Initialisation ———————————————————————
//————————————————————————————————————————————————————————
{
this.Nom = Nom; //—— Valeurs par défaut ——
this.Typ = Typ ? Typ : "c"; // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
this.Oui = Oui ? Oui : "CocheOui.gif";
this.Non = Non ? Non : "CocheNon.gif";
tmp = Eta;
if ( typeof(window["tmp"]) != "undefined" )
{ //—— par défaut, on ne touche à rien ——
switch ( this.Typ.charAt(0).toLowerCase() )
{
//——————————————————————————
case "c": //—— CheckBox ——
//——————————————————————————
switch (Eta)
{
case -1: //—— non cochée ——
this.Nom.src=this.Non; // ¯¯¯¯¯¯¯¯¯¯
break;
default: //—— cochée ——
this.Nom.src=this.Oui; // ¯¯¯¯¯¯
break;
}
break;
//———————————————————————
case "r": //—— Radio ——
//———————————————————————
for ( var n=0;n<this.Nom.length;n++)
{ //—— non cochées ——
this.Nom[n].src=this.Non; // ¯¯¯¯¯¯¯¯¯¯¯
}
if ( Eta>=0 && Eta<this.Nom.length )
{ //—— cochée ——
this.Nom[Eta].src=this.Oui; // ¯¯¯¯¯¯
}
break;
}
}
return true;
}
//—————————————————————————————————————————————————————————————————
PARC.prototype.Click = function (Num) //—— click sur un bouton ————————————————
//—————————————————————————————————————————————————————————————————
{
var ret;
switch ( this.Typ.charAt(0).toLowerCase() )
{
//——————————————————————————
case "c": //—— CheckBox ——
//——————————————————————————
if ( this.Nom.src.substring(this.Nom.src.lastIndexOf("/")+1)
==
this.Oui )
{ //—— non cochée ——
this.Nom.src=this.Non; // ¯¯¯¯¯¯¯¯¯¯
ret=false;
}
else { //—— cochée ——
this.Nom.src=this.Oui; // ¯¯¯¯¯¯
ret=true;
}
break;
//———————————————————————
case "r": //—— Radio ——
//———————————————————————
for ( var n=0;n<this.Nom.length;n++)
{ //—— non cochée ——
this.Nom[n].src=this.Non; // ¯¯¯¯¯¯¯¯¯¯
}
Num.src=this.Oui; //—— cochée ——
ret=true; // ¯¯¯¯¯¯
break;
}
return ret;
}
//————————————————————————————————————————————————
PARC.prototype.Test = function () //—— Etat ? ——————————————————————————————
//————————————————————————————————————————————————
{
switch ( this.Typ.charAt(0).toLowerCase() )
{
//——————————————————————————
case "c": //—— CheckBox ——
//——————————————————————————
if ( this.Nom.src.substring(this.Nom.src.lastIndexOf("/")+1)
==
this.Oui )
{ //—— cochée ——
return true; // ¯¯¯¯¯¯
}
else { //—— non cochée ——
return false; // ¯¯¯¯¯¯¯¯¯¯
}
break;
//———————————————————————
case "r": //—— Radio ——
//———————————————————————
var ret=-1; //—— non cochée ——
for ( var n=0;n<this.Nom.length;n++) // ¯¯¯¯¯¯¯¯¯¯
{
if ( this.Nom[n].src.substring(this.Nom[n].src.lastIndexOf("/")+1)
==
this.Oui )
{ //—— cochée ——
ret=n; // ¯¯¯¯¯¯
n=this.Nom.length;
}
}
return ret;
break;
}
}
//———————————————————————————————————————————————————————————
PARC.prototype.Decoche = function () //—— Tout Décocher ———————————————————
//———————————————————————————————————————————————————————————
{
switch ( this.Typ.charAt(0).toLowerCase() )
{
//——————————————————————————
case "c": //—— CheckBox ——
//——————————————————————————
this.Nom.src=this.Non;
break;
//———————————————————————
case "r": //—— Radio ——
//———————————————————————
for ( var n=0;n<this.Nom.length;n++)

{
this.Nom[n].src=this.Non;
}
break;
}
return false;
}
caporga
LA GLOBULE
le 19/11/2008 à 20:52
LA GLOBULE
Personnellement, je ne vois pas pourquoi tu as besoin de javascript pour faire cela.

Pourquoi ne pas afficher carrément des boutons radios avec à coté une image ?
Si tu attribues une valeur adéquate à chaque radio (sous entendu te permettant de "retrouver l'image"), en récupérant la valeur du radio, tu "sais" quelle image le visiteur a choisi.

Ensuite, pour tes images, tu souhaites stocker uniquement le chemin de l'image en base de données ? Ou carrément le code binaire de l'image ?
Prenons l'exemple ou tu stockes en base le chemin de tes images (bien sur, il faut que l'image existe sur ton disque dur, sinon, c'est mort).

Autre question : ton code JS, il est directement inclue dans ta page PHP avec un <script type="text/javascript">ton code JS</script>, ou bien est ce un .js externe ?

Si tu es dans le premier cas, il te suffit de faire, avant d'afficher ton javascript, une requete SQL sélectionnant le chemin de tes images, puis de faire dans ta partie de code javascript un simple :

this.Oui = Oui ? Oui : "<?php echo $chemin_image; ?>";


Si tu as un fichier externe, il va te falloir le renommer en .php, puis, au tout début du fichier, y placer un header javascript.
Comme ceci :

<?php
header('Content-type: application/x-javascript; charset=utf-8');
?>
le code JS du fichier


(je te rappelle que PHP peut générer du HTML, mais pas que ca, il peut générer du Javascript, des images, des PDF, voir rien du tout).

Puis dans ce fichier, tu feras ta requête SQL avant d'afficher le code JS, tout comme dans le premier cas que j'ai exposé.

Enfin, dans la page qui appelle ton JS, il faudra la modifier en conséquence pour appeler ce script PHP avec un <script type="text/javascript" src="mon_nouveau_js.php"></script>.
caporga
le 19/11/2008 à 21:57
caporga
wouaw... merci pour toutes ces infos
alors... le <javascript> va être dans la page directement, pour moi c'est plus simple... je suis tes conseils

merci

ps : j'ai du faire planter cette page, car après avoir posé mon code, je n'arrivais plus à la visionner et même ça me déconnectait.... voilouch

merci globule
caporga
caporga
le 28/11/2008 à 02:04
caporga
j'ai eu comme info que le php est exécuté en premier... est-ce exacte ??? ça parait cependant logique, le php eu niveau server le javascript au niveau client..
caporga
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours