Mysql et javascript [Résolu]

sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 13 oct. 2010 à 14:42 - Dernière réponse : sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention
- 14 oct. 2010 à 16:02
Bonjour
Actuellement j'ai le script suivant "javascript" dans un fichier js:


window.addEvent('domready', function(){
var data = {
'image-02.jpg': { caption: 'Aisha Almuhairy fashion creation.' },
'image-01.jpg': { caption: 'Aisha Almuhairy fashion creation.' },
'image-03.jpg': { caption: 'Aisha Almuhairy fashion creation.' },
'image-04.jpg': { caption: 'Aisha Almuhairy fashion creation.' }
};
var myShow = new Slideshow.KenBurns('show', data, { captions: false, controller: false, delay: 5000, duration: 8000, height: 530, hu: '../images_final/slideshow_eng_ar/', width:530 });

});




et je desire ajouter une fonction mysql de la maniere suivante :





$resultz = mysql_query( "SELECT photo_id,photo_caption,photo_filename FROM gallery_photos WHERE photo_category='".addslashes($cid)."'" );
$nr = mysql_num_rows( $resultz );

if( empty( $nr ) )
{
$result_finall = "\t<tr><td>No Category found</td></tr>\n";
}
else
{
while( $row = mysql_fetch_array( $resultz ) )
{
$result_array[] = "
<td></td>




le but souhaité c est de remplacer EXP "image-02.jp" par la valeur dans la base de donnée SVP !!

Ceci est tres urgent SVP et toute aide serait tres tres apprécié !
Afficher la suite 

17 réponses

Répondre au sujet
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 14 oct. 2010 à 14:22
+3
Utile
Bon... Je suis dans un bon jour, une bonne semaine, alors... explications.

PHP est un langage de script. Le moteur de PHP permet de générer du texte (essentiellement). Du texte comme du HTML (le plus courant : une page web). Mais un fichier JS, CSS, XML, c'est aussi du texte.

Il faut juste faire abstraction de l'extension du fichier. Ce qui importe, c'est le contenu, pas le contenant. Le navigateur n'en a absolument rien à faire de l'extension du fichier. Si tu lui dis "Tiens, prends ça, c'est un fichier .bidule, mais je t'assure que c'est une feuille de style", le navigateur, bête et méchant, va te croire sur parole. Idem si le fichier est un .php et que tu lui dis "Ecrase, c'est pas un php, c'est du javascript". Le navigateur va le passer en l'état au moteur de javascript, lui, il s'en fiche que ça marche ou pas, c'est le moteur de JS qui s'en charge.

Donc... Tu fais un fichier .php comme les autres, dans lequel tu fais tout ce qu'il faut pour obtenir les valeurs qui te conviennent. Tu prépares un script JavaScript dans une chaîne de caractères, par exemple :
<?php
session_start();
$js = 'alert("Bonjour '.$_SESSION['user_id'].'");';
?>


Au lieu d'afficher $js simplement avec un echo (c'est un script autonome, il ne sera pas "affiché" à l'écran, mais envoyé au navigateur), juste avant, tu dis au navigateur de quoi il s'agit :
<?php
session_start();
$js = 'alert("Bonjour '.$_SESSION['user_id'].'");';
// C'est là qu'on dit au navigateur ce qu'on lui envoit :
header('Content-type: text/javascript');
// Eventuellement, si ton fichier est encodé en UTF8 :
// header('Content-type: text/javascript; charset=utf-8');

// Tu peux aussi (c'est une bonne idée) lui dire combien de caractères ça fait, ce que tu lui envoies :
header('Content-length: '.strlen($js));
// Ensuite, tu peux envoyer le contenu du script :
echo $js;
// Et c'est tout
?>


Dans ton code HTML, en supposant que tu aies appelé ce fichier javascript.php (ahahah) il suffira d'appeler le script comme ça :
<script type="text/javascript" src="javascript.php"></script>


Et pis c'est tout.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de neigedhiver
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 14 oct. 2010 à 15:28
+3
Utile
MDR S. !
Je peux te passer les clés de ma voiture, mais viens la chercher. Si tu dépasses le coin de la rue, c'est que t'as un bol monstre, faut jouer au loto.
Inutile donc que je te prête 500€...

@sherifff : tu utilises la syntaxe HEREDOC. Il ne FAUT PAS concaténer à l'intérieur :
echo <<<__HTML_END

window.addEvent('domready', function(){
var data = {
'$result_finall' };
var myShow = new Slideshow.KenBurns('show', data, { captions: false, controller: false, delay: 5000, duration: 8000, height: 530, width:530, hu: '' });

});


__HTML_END;

La variable $result_finall est directement interprétée comme si elle se trouvait entre guillemets doubles. La lecture de la doc peut s'avérer utile...
C'est fou ça quand même, le nombre de fois que je recommande de lire la doc... Je vais peut-être l'écrire directement dans ma signature.

[EDIT]Ah mais j'avais oublié que c'était déjà dans ma signature.../EDIT

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de neigedhiver
syndrael 2382 Messages postés lundi 4 février 2002Date d'inscription 29 décembre 2012 Dernière intervention - 13 oct. 2010 à 15:33
0
Utile
Oui, mais là il faut que tu comprennes que Javascript et MySQL ne dialogue jamais sauf par l'intermédiaire de PHP.
Donc tu dois générer ton fichier JS via PHP avant de l'intégrer dans ta page HTML.
S.
Commenter la réponse de syndrael
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 13 oct. 2010 à 16:24
0
Utile
Ou alors, via XmlHTTPRequest.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 02:02
0
Utile
Mais je ne sais pas du tout le faire ....
any piste ?
Commenter la réponse de sherifff
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 14 oct. 2010 à 02:19
0
Utile
Des pistes... Y'a de très bon tutos dans les librairies.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
syndrael 2382 Messages postés lundi 4 février 2002Date d'inscription 29 décembre 2012 Dernière intervention - 14 oct. 2010 à 08:00
0
Utile
Demander à Neige s'il y a des pistes.. LOL !! Mais c'est pas encore la saison du ski..LOL .. Facile celle-là du matin.
Bon, revenons à nos moutons..
Avant de se lancer dans Ajax'n co, apprends déja juste à afficher une variable PHP dans un javascript. Cela te demandera une chose: comprendre le principe de client-serveur. En effet, tu généres du Javascript, comme de l'HTML avec PHP. Vulgairement tu pisses de la chaine de caractères avec PHP.
PHP dialogue avec MySQL.. PHP est donc bien le chainon manquant dans ce que tu demandes.
Donc commence par le commencement: afficher un variable PHP dans un javascript
Et après les choses vont découler d'elles mêmes.
S.
Commenter la réponse de syndrael
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 14 oct. 2010 à 11:23
0
Utile
Demander à Neige s'il y a des pistes.. LOL !! Mais c'est pas encore la saison du ski..LOL .. Facile celle-là du matin.


PTDr, elle est excellente ouais !

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 14:08
0
Utile
MDR trop bonne celle la !

non mais concrétement j'ai un slideshow qui fais appel à 3 fichiers .Js

et je suis assez newbie pour mixer le php avec le javascript

Alors je demande qu'on me mette sur un piste SVP

Allez y SVP
Commenter la réponse de sherifff
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 14:26
0
Utile
Merci infiniment neigedhiver



je vais essayer, et faire de mon mieux,

et je vous tienderais au courant
Commenter la réponse de sherifff
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 15:11
0
Utile
Heuuuuuuuuuuuuuuuuuuuh

j"ai fait le fichier suivant :

<?php 
include("../../admin/config.inc.php");

// initialization
$result_array = array();
$counter = 0;

$zid = (int)($_GET['zid']);
$pid = (int)($_GET['pid']);

// Thumbnail Listing

if( $zid && empty( $pid ) )
{
$number_of_thumbs_in_row = 4;

$resultz = mysql_query( "SELECT photo_id,photo_caption,photo_filename FROM gallery_photos WHERE photo_category='".addslashes($zid)."'" );
$nr = mysql_num_rows( $resultz );

if( empty( $nr ) )
{
$result_finall = "\t<tr><td>No Category found</td></tr>\n";
}
else
{
while( $row = mysql_fetch_array( $resultz ) )
{
$result_array[] = " '".$row[2]."' ";
}
mysql_free_result( $resultz );	

$result_finall = "<tr>\n";

foreach($result_array as $thumbnail_link)
{
if($counter == $number_of_thumbs_in_row)
{	
$counter = 1;
$result_finall .= "\n</tr>\n<tr>\n";
}
else
$counter++;

$result_finall .= "".$thumbnail_link."";
}

}
}

echo <<<__HTML_END

window.addEvent('domready', function(){
    var data = {
      '".$result_finall."' };
    var myShow = new Slideshow.KenBurns('show', data, { captions: false, controller: false, delay: 5000, duration: 8000, height: 530, width:530, hu: '' });

  });
      
 
__HTML_END;
?>




Mais sa marche Tjs pas
une idée sur l étendue de ma bétise ?
Commenter la réponse de sherifff
syndrael 2382 Messages postés lundi 4 février 2002Date d'inscription 29 décembre 2012 Dernière intervention - 14 oct. 2010 à 15:13
0
Utile
Dis Neige, j'ai besoin des clé de ta voiture.. et puis aussi 500€ pour aller faire la fête.
Je me dis que comme tu es dans un bon jour, sur un malentendu ça pourrait marcher qui sait.. LOL !!
En tout cas pour Sherifff tu peux mettre sa réponse en 'Réponse acceptée' ça en aidera plus d'un je pense.
S.
Commenter la réponse de syndrael
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 15:33
0
Utile
bon je suppose que ma base de donnée retourne 4 enregistrements dy type image
et le champs "photo_filenam"
retourne la valeur suivante : "image-01.jpg"

la ce qui me dépasse c'est comment faire pour que
dans la partie suivante affiche les 4 enregistrements de suite comme suit :

 var data = {
      '".$result_finall."' };
 var data = {
      '".$result_finall."' };
 var data = {
      '".$result_finall."' };
 var data = {
      '".$result_finall."' };


alors qu'en testant le script méme en ayant mis 1 seul fichier image je n'obtient pas de résultats du tout.....


alors que quand je renomme ma function comme suit
$result_array[] = "<img src=../images_final/slideshow_eng_ar/".$row[2]." ";



l'image est affiché quand je teste le fichier
my-slideshow.php
tout en spécifiant dans l 'url
my-slideshow.php?zid=30 par Exp...

Une idée ?
Commenter la réponse de sherifff
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 15:36
0
Utile
ouais t'a raison c est parceque c est dans la signature

Mais par pitié donnez moi une idée
mon client m 'attend et je suis deja tout perdu dans se script
Commenter la réponse de sherifff
neigedhiver 2492 Messages postés jeudi 30 novembre 2006Date d'inscription 14 janvier 2011 Dernière intervention - 14 oct. 2010 à 15:44
0
Utile
C'est marrant, t'aurais pas du donner cette information, là...
Si c'est pour un client, de deux choses l'une :
- soit tu es capable de fournir la prestation que tu lui factures auquel cas tu ne devrais pas avoir à nous demander de l'aide (j'imagine pas un maçon qui vient de se mettre à son compte facturer la construction d'une terrasse et demander à l'artisan du coin de lui filer un coup de main...)
- soit tu sous-traite le support.

Moi je veux bien donner des coups de mains. Mais quand c'est pour aider un professionnel qui n'est pas capable de fournir la prestation pour laquelle il facture son client... Je fais un blocage. Y'a un truc qui m'échappe.
Ce qui me tue le plus, en fait, c'est que t'aies réussi à lui vendre une prestation que tu ne peux pas fournir. Ca me sidère, vraiment. Ou alors ton client est vraiment le parfait pigeon.

Je suis désolé d'être aussi direct et de ne pas prendre de pincettes, mais vraiment, je suis choqué... Dire qu'hier soir les filles ont pas réussi à me déstabiliser... Je leur ai dit qu'elles me connaissaient pas assez, elles ont tenté le sujet du sexe, mais ça n'a pas marché... En fait, il aurait fallu qu'elles me parlent de JS... :/

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Commenter la réponse de neigedhiver
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 15:56
0
Utile
[^^fou]
Commenter la réponse de sherifff
sherifff 9 Messages postés mercredi 13 octobre 2010Date d'inscription 14 octobre 2010 Dernière intervention - 14 oct. 2010 à 16:02
0
Utile
et bien....
je suis bouche bé
c est mon premier site web que je crée a mon compte....

Par contre je veux juste de l aide a fin de mieux comprendre.....

c est vrais que la je facture un servie au client, mais j'ai deja tout erminé et la il demande a ce que la partie animation dans la page d acceuil le fameux "slideshow" soit administrable aussi....

et la personnellement je coince....

Allez colllégue un petit coup de main STP, aide moi a mieux maitriser mon futur métier STP
Commenter la réponse de sherifff

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.