Mysql et javascript [Résolu]

Signaler
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010
-
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010
-
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é !

17 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
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à ;)
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
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à ;)
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
Ou alors, via XmlHTTPRequest.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

Mais je ne sais pas du tout le faire ....
any piste ?
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
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à ;)
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
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à ;)
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

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
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

Merci infiniment neigedhiver



je vais essayer, et faire de mon mieux,

et je vous tienderais au courant
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

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 ?
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

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 ?
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

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
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
16
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à ;)
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

[^^fou]
Messages postés
9
Date d'inscription
mercredi 13 octobre 2010
Statut
Membre
Dernière intervention
14 octobre 2010

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