php et fonction javascript

Eléphanteau du PHP | 10 Messages

06 avr. 2005, 21:45

bonjour à tous

je débute depuis peu en php et j'ai quelques soucis, voici ce que je veux obtenir:
je souhaite réaliser une fonction qui récupère les noms des fichiers contenu ds un dossier, les inserer ds une base de données, puis qu'un script récupère ses noms, les affiches sur une page web et que sur un clic sur leurs noms ils se chargent chez l'utilisateur!!!

pour l'instant j'ai réussi à récupérer les noms des fichiers , les mettre ds la base de donnée, à les afficher sur une page web en tant que lien.
mais là ou j'ai des problemes c'est pour que l'on puisse cliquer sur le nom et charger le fichier correspondant.
j'ai insérer un href et un onclick lorsque le script écrit les noms de fichiers sur la page et j'appelle en même tant un script (contenu ds load.php, voir les script ci-dessous) contenant une fonction java qui est assignée au on click.....
le probleme c'est que mes noms on bien un lien d'assignés mais c'est le même pour tous, et plus particulièrement le dernier récupérer ds la base de données...bref le nom de mes chemins ne varie pas!! :lol:

ma question c'est comment faire varier le chemin d'acces sur le onclick
j'espère avoir été assez précis, si vous avez des idées je suis preneur car je comprend pourquoi cela bloque mais je vois pas trop comment m'y prendre pour avancer

merci d'avance :D



voici la page qui ecrit les nom des fichiers disponible, les uns en dessous des autres, et qui leur assigne un lien pour charger
<?

$SQL = "SELECT * FROM sample"
. " ORDER BY ID ASC";

$res = mysql_query($SQL);


while($val=mysql_fetch_array($res)) {

$fichierrecup = $val["titre"];
echo "<tr><td >";

//appel de la page qui contient la fonction de lien
include (load.php');
echo '<a href="#" onClick="charger();>';
echo $fichierrecup;
echo '</a>';
echo "<br>";
echo "<br>";

// Fin cellule et tr
echo "</td></tr>";
}

?>




voici le script contenu ds load.php qui est appele par la page precedente

<?
?>
<script language="javascript" type="text/javascript">
//fonction qui permet de mettre le chemin en variable
//et qui est appliqué au lien

var chemin="../sons/sample/";
var titre= "<?php echo $fichierrecup;?>";
var adresse= chemin + titre;

function charger(){
var chemin="../sons/sample/";
var titre= "<?php echo $fichierrecup;?>";
var adresse= chemin + titre;


window.open(adresse);
}
</script>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

06 avr. 2005, 22:03

il faut que tu passes le fichier à charger en paramètre de ta fonction
 echo '<a href="#" onClick="charger(\''.$fichierrecup.\'');>';
echo ; 

Code : Tout sélectionner

function charger(fichier){

Eléphanteau du PHP | 10 Messages

06 avr. 2005, 22:37

bon j'ai tester ta proposition , mais toujours pas de succes
mais je me pose quelques questions par rapport a la syntaxe que tu m'a donné:

echo '<a href="#" onClick="charger(\''.$fichierrecup.'');>';
echo ;

juste pour comprendre et m'assuré que je n'ai pas mal interpreter :
-dans .$fichierrecup. pourquoi encadrer le nom de variable avec des .
-le \" c'est parce qu'il y a deja des '' et "" , c'est avec les ; ?


j'ai modifié le script java cela donne ça:
<?


?>
<script language="javascript" type="text/javascript">

function charger(fichier){
var chemin="../sons/sample/";
var adresse= chemin + fichier;

window.open(adresse);
}
</script>

avec ces modifs mes liens n'ouvre plus aucune fenetre

merci quand même pour l'aide :D

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

06 avr. 2005, 23:54

j'ai écrit comme ça mais effectivement je ne suis jamais très sur de la syntaxe Javascript, et il me faut souvent plusieurs essais

seulement, il me semble que tu si tu passes une chaine de caractère en paramètre d'une fonction, tu dois l'entourer de simples quotes

ex : ecrireMessage('coucou');

ici, tu fais ton echo avec ces simples quotes, il faut donc échapper celle faisant partie de l'instruction javascript pour ne pas qu'elles terminent le echo
comme ceci : \'

et voilà

sinon, où définis tu ta fonction exactement, au début du fichier qui va afficher les liens

sinon si tu passes par firefox, tu as une console javascript qui te renseignera sur les erreurs Javascript, quand tu cliques sur le lien qui ne fonctionne pas par exemple

Eléphanteau du PHP | 10 Messages

07 avr. 2005, 00:53

merci tes précisions
ca marche pas pour l'instant :D (mais ca va venir!!)

ma fonction est defini ds le script qui est lié parcqu'elle est ecrite pour chaque lien lorsque la base de donné est balayé et que les nom de fichier sont ecris sur la page.

si vous avez des idees marci d'avance :wink:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

07 avr. 2005, 07:40

pourquoi l'écris tu pour chaque lien ?
le principe d'une fonction c'est justement de factoriser des actions, en passant des paramètres pour personnaliser

donc tu peux définir ta fonction au début du fichier, et changer dans l'appel le nom du fichier que tu passes en paramètre via PHP

as-tu essayé la console Javascript ?

Invité
Invité n'ayant pas de compte PHPfrance

07 avr. 2005, 09:48

bon j'ai contourné le problème, tout simplement en mettant la variable qui recupere les noms de fichier ds le href, plus besoin de fonction onclick java.

merci pour ton aide :D