Mysql et javascript

Résolu
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010 - 13 oct. 2010 à 14:42
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010 - 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é !

17 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 14:22
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à ;)
3
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 15:28
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à ;)
3
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
13 oct. 2010 à 15:33
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.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
13 oct. 2010 à 16:24
Ou alors, via XmlHTTPRequest.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 02:02
Mais je ne sais pas du tout le faire ....
any piste ?
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 02:19
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à ;)
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
14 oct. 2010 à 08:00
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.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 11:23
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à ;)
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 14:08
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
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 14:26
Merci infiniment neigedhiver



je vais essayer, et faire de mon mieux,

et je vous tienderais au courant
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 15:11
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 ?
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
14 oct. 2010 à 15:13
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.
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 15:33
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 ?
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 15:36
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
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
14 oct. 2010 à 15:44
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à ;)
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 15:56
[^^fou]
0
sherifff Messages postés 9 Date d'inscription mercredi 13 octobre 2010 Statut Membre Dernière intervention 14 octobre 2010
14 oct. 2010 à 16:02
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
0
Rejoignez-nous