|
|
|
|
Funewik, le mercredi 7 avril 2004 à 11:14:46function go(n)
{
if (x==0){
document.getElementById("rubric"+n).innerHTML = '<? $query1 = "select * from DTBN_menu where sous_cat=$id and rubrique=0"; $mysql_result1 = mysql_query($query1, $db); while($row1 = mysql_fetch_row($mysql_result1)){$id1 = $row1[0]; $titre1 = $row1[1]; echo $titre1;}?><br>';
document.getElementById("rubric"+n).style.position = 'relative';
x=1;
}
$id1 = $row1[0]; $titre1 = $row1[1]; echo $titre1;
bon pour faire simple par ce que je pense que personne a compris ton post :-)
innerHTML te permetre d'ecrire du code html apres le chargement de la page. si tu veut ecrir au chargement de la page tu doit utilise document.write(); mais dit ce que tu veut faire ca sera plus simple |
salut Funewik,
si tu arrive a mettre du php dans du javascript peux-tu m'envoyer la solution car je voudrais introduire du php dans une barre de navigation en javascipt. merci, s'il y en a des autres qui peuvent apporté une idée dans ce domaine, je pense que beaucoup de gens seront intérrésé.. |
je cherhce aussi à affecter une valeur à une variable javascript et ceci dans un javascript
Est ce posssible ? merci pour la solution Pouvez vous me la poster ? |
Bonjour.
Funewik, sans vouloir te manquer de respect, je crois que tu te mélanges un peu les pinceaux. Le code php est interprété au chargement de la page une fois pour toute. Si tu veux un fonction go(n) en javascript qui pointe vers le résultat d'un requête mysql en php, il me semble que l'intégralité des résultats renvoyés doit être écrit au chargement de la page (donc à l'éxecution d'un script php). Là comme ça, sans y avoir réfléchi plus que ça, je voit 2 solutions. La première consiste à faire écrire la fonction javascript par le php. En gros, tu extraie tous ce que tu veux extraire de ta bdd, tu en construis un tableaux indexé sur les $id et tu fais écrire au php une fonction javascript avec un switch qui dit si n vaut x alors renvoyer la valeur de l'index x du tableau issue de ma requête. La seconde solution consiste à recharger ta page à chaque fois en faisant passer ton id dans l'url par exemple, pour que la requête mysql soit exécutée avec le bon id. Voilà. Je ne suis pas sure d'être très claire donc n'hésite pas à poser des questions ;-) .:: TaBou JuNioR ::. J'ai des questions à toutes vos réponses. [W. Allen]
|
bonjour!
j'aimerai faire une fonction inserer du php dans du javascript (mixage php & javascript). pouvez vous m'aider? |
utilise plutôt AJAX |
Le PHP s'exécute coté serveur, le JavaScript coté client. Or du code quel qu'il soit, avant d'être afficher, passe d'abord par le serveur puis par le client, mais jamais l'inverse.
En gros le PHP sera toujours exécuté avant le chargement de la page et le JavaScript soit pendant, soit après. |
Bonjour,
je me permet d'écrire sur ce topic, car il n'y a pas de réponse depuis quelque temp donc je ne pense pas cassé l'allure de la discution Akiro est-tu confirme ce que je pense si je déclare une fonction function Fonction_incremente() {
<?php
$valeur=$valeur+1;
?>
et que je l'apelle par un lien <a href="#" onClick="Fonction_incremente();">++</a> il n'y aura jamais d'incrementation, d''ailleur l'incrementation est faite au chargemenr de la page et non au clic du lien c'est ça ? |
Bjr
Soit la page test.php <html> <head> <script> function Fonction_incremente() { <?php $valeur=$valeur+1; ?> } </script> </head> <body> <a href="#" onClick="Fonction_incremente();">++</a> </body> </html> La même page vue du côté serveur par php ressemble à : <?php $valeur=$valeur+1; ?> Tous le reste est perçu par le module php comme du commentaire ! La même page vue par le navigateur sur le poste client ressemble à : <html> <head> <script> function Fonction_incremente() { } </script> </head> <body> <a href="#" onClick="Fonction_incremente();">++</a> </body> </html> Plus de code php ici ! Bref la fonction ne fait rien ... PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
|
Là c'est bon !
Dans le page guitare.php le module php sait effectivement si les cookies sont activés ou non en récupérant la variable Ex <?php $cookie = $_GET["c"]; if ($cookie == "ok") // Cookies activés { } else { } ?> PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
|
Bjr
Oui mais pourquoi faire ? c'est plus compliqué .. Ex page cookie.php <html>
<head>
<script language="JavaScript">
<!--
function form_submit()
{
var elt = document.getElementById("cookieEnabled");
elt.value = navigator.cookieEnabled ? "ok" : "";
var elt = document.getElementById("form_redirection");
elt.submit();
}
//-->
</script>
</head>
<body onload="form_submit()">
<form id="form_redirection" action="redirection.php" method="post">
<input type="hidden" id="cookieEnabled" name="cookieEnabled" value="">
</form>
</body>
</html>
page redirection.php : <html>
<head>
</head>
<body>
<?php
if (isset($_POST["cookieEnabled"]))
{
if ($_POST["cookieEnabled"])
{
echo "Les cookies sont activés sur cette machine";
}
else
{
echo "Les cookies sont désactivés sur cette machine";
}
}
?>
</body>
</html>
Tu peux aussi faire une seule page qui se recharge elle-même PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
|
ben moi ca fonctionne
lorsque j'appelle la page depuis un formulaire avec post et qu'ensuite je rafraichis la page j'obtiens une fenêtre avec un message "La page ne peut être actualisée sans le renvoi d'informations ...." De toute façon une page postée avec la méthode post n'est pas censée être rafraîchie avec F5 PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
|
Tu n'as donc qu'une seule et même page nommée guitare.php Je n'ai pas l'impression d'avoir vu la redirection (la page ne semble pas se recharger elle est affichée et c'est tout ou alors ca va super vite :-)
C'est quoi le code complet de ta page ? Apparemment tu n'utilises pas de formulaire : pourquoi dans ce cas tiens-tu tellement à passer des paramètres par la méthode POST ? Enfin tu comptes faire quoi avec les cookies ? PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ... |
désolé erreur de ma part
methode GET http://www.bertrandperrier.fr/guitare_verif.php redirection vers http://www.bertrandperrier.fr/guitare.php methode POST http://www.bertrandperrier.fr/guitare_verif_dev.php redirection vers http://www.bertrandperrier.fr/guitare_dev.php |
Dans les 2 cas j'obtiens bien le message "Les cookies sont activés sur cette machine" en haut à gauche Donc les capacités du navigateur sont bien détectées.
Par contre dans tes liens sur la page guitare_dev.php tu as dû faire une erreur en initialisant la variable "c" passée dans l'url Mais je ne peux pas te dire où ... sans le code PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ... |
guitare_verif_dev.php
<html>
<head>
<script language="JavaScript">
<!--
function form_submit()
{
var elt = document.getElementById("cookieEnabled");
elt.value = navigator.cookieEnabled ? "ok" : "";
var elt = document.getElementById("form_redirection");
elt.submit();
}
//-->
</script>
</head>
<body onload="form_submit()">
<form id="form_redirection" action="guitare_dev.php" method="post">
<input type="hidden" id="cookieEnabled" name="cookieEnabled" value="">
</form>
</body>
</html>
guitare_dev <?php
if (!isset($_GET["id"]))
{
$id = '';
}
else
{
$id = $_GET["id"];
}
if (!isset($_GET["sort"]))
{
$sort = '';
}
else
{
$sort = $_GET["sort"];
}
if (isset($_POST["cookieEnabled"]))
{
if ($_POST["cookieEnabled"])
{
echo "Les cookies sont activés sur cette machine";
}
else
{
echo "Les cookies sont désactivés sur cette machine";
}
}
else
{
echo "pas declare";
}
include("guitare_data.php");
//include("compteur_php_mysql.php");
echo("<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
<html><head>
<meta http-equiv='Content-Type' content='text\/html\;charset=utf-8'>
<META NAME='Author' LANG='fr' CONTENT='Bertrand PERRIER'>
");
echo ("<title>");
if ($id==""){echo("Bienvenue sur la page guitare");}
if ($id!="" AND $id<=count($script))
{
echo ("Bertrand>Page guitare>$script[$id]");
}
if ($id>count($script)){echo ("Bertrand>Page guitare>Erreur");}
echo ("</title></head>
<body style='background: #C2D5FF url(fond.gif) no-repeat top left;' link='#0000FF' vlink='#0000FF' text='#000000'>
<font size=6> Bertrand>Page guitare</font><br />
<font size=1>.</font><br />
Mes <b>");
echo count($script);
echo("</b> musiques pour guitare<br /><br />
<center>
Trier par ");
if ($sort == 1)
{
echo("<a href='");__FILE__;echo("?id=$id&sort=0'>ordre de difficulté</a>
<b>ordre alphabétique</b>
");
}
else
{
echo("<b>ordre de difficulté</b>
<a href='");__FILE__;echo("?id=$id&sort=1'>ordre alphabétique</a>
");
}
echo ("</center>
<br />
<table width='100%' border='0'><tr><td width='47%' align=right valign=top>");
for($i=1; $i != count($script)+1 ; $i++)
{
if ($sort == 1)
{
$temp=$alpha_order[$i];
}
else
{
$temp=$i;
}
echo("<a href='");__FILE__;echo("?id=$temp&sort=$sort'>");
if ($id==$temp){echo("<b>");}
echo("$script[$temp]");
if ($id==$temp){echo("</b>");}
echo("</a><br />");
}
echo("</td><td align=center width='4'><img src='SquareBlueBullet2.gif' height='641' width='4' border=0></td><td valign=top>");
if ($id=="" OR $id>count($script))
{
echo("<font color='red'>Cliqué sur le titre de la chanson<br />pour afficher les détails</font>");
}
for($i=1; $i != count($script)+1 ; $i++)
{
if ($sort == 1)
{
$temp=$alpha_order[$i];
}
else
{
$temp=$i;
}
if ($id==$temp)
{
echo("<font color='red'><b>$script[$temp]</b></font><br />");
echo($contenu[$temp]);
}
}
echo ("
</td></tr></table>
<center>
");
$nom_php = __FILE__;
include("aff_icone.php");
echo("
</center>
<p align='right'>$nombre visites depuis le 1 avril 2008<br />
</p>
<p align='right'>
<font face='Helvetica' size='-1' color='#330066'>
");
include("copyright.txt");
echo("
<br />
</font>
</p>
</body></html>
");
?> |
Ben dans tes liens tu ne fais pas référence du tout à la variable récupérée dans $_POST
$cookieEnabled="";
if (isset($_POST["cookieEnabled"]))
{
if ($_POST["cookieEnabled"])
{
echo "Les cookies sont activés sur cette machine";
$cookieEnabled="ok";
}
else
{
echo "Les cookies sont désactivés sur cette machine";
$cookieEnabled="ko";
}
}
else
{
echo "pas declare";
}
ainsi que echo("<a href='");__FILE__;echo("?id=$temp&sort=$sort&c=$cookieEnabled'>");
PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
|
salut il est peut etre un peu tard (un mois)
mais tu as pensé à de l'AJAX. Avec ca, ta requete et donc le rechargement se font en transparent et rien n'apparait dans l'url. qui su coup peut très bien être un simple guitare.html Je m'explique dans ton head, tu mets un truc du genre <script src="./js/ajax_guitare.js" type="text/javascript" language="javascript"> </script> et là où doivent apparaitre les infos : <span id="valeur_case"></span> dans ce fichier tu mets des trucs du genre // JavaScript Document
function recup_partition(chanson_id){
var adresse = "./Fonctions/guitare/ecrire_guitare.php?id="+chanson_id;
makeRequest(adresse, "innerHTML_id"); //"innerHTML_id" est le id du span qui va recevoir les infos
return false;
}
function makeRequest(url,element_id){
if(window.XMLHttpRequest) {
//FireFox
xhr = new XMLHttpRequest();
}
else {
if(window.ActiveXObject) {
//IE
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP" );
}
catch (e) {}
}
}
if (xhr) {
//Si ca a fonctionné
xhr.onreadystatechange = function() {
// instructions de traitement de la réponse
ShowContents(element_id)
}
xhr.open("GET",url,true);
xhr.send(null);
}
else {
document.getElementById(element_id).innerHTML = "Désolé, impossible de créer une requête XMLHttpRequest";
}
}
function ShowContents(element_id) {
if(xhr.readyState == 4) { // 4 = terminé et initialisé
if(xhr.status == 200) { // 200 = terminé pour la page (type erreur 404 = non trouvé etc...)
var outmsg = xhr.responseText;
document.getElementById(element_id).innerHTML = outmsg;
}
}
}
dans ton fichier ecrire_guitare.php tu fais ta requete SQL avec que tu affiches avec un <?php //code de la requête SQL à toi de voir mysql_free_result($requete_sql_chanson); echo $valeur_requete; //où valeur_requete est le resultat de ta requete $requete_sql_chanson ?>
|
Bjr
Effectivement dans l'ex de critters il manque un paramètre avant de faire xhr.send(null); Il faut bien sûr passer cookieEnabled en paramètre ... En fait si tu utilises AJAX ca se passe ainsi 1) L'utilisateur charge la page guitare.php qui est quasiment vide 2) Dans la page guitare.php on exécute une requête AJAX vers une autre page mettons guitare_ajax.php en lui passant le paramètre cookieEnabled 3) Ta requête guitare_ajax.php est éxécutée et retourne des données différentes (voir rien) selon que le paramètre cookieEnabled est ok ou pas 4) Ta page guitare.php jusqu'à présent quasiment vide est mise à jour avec les données renvoyées par guitare_ajax.php C'est plus complexe mais ca peut fonctionner. Note que durant les étapes 1 à 4 à aucun moment la page guitare.php n'est rechargée : la requête AJAX s'exécute en tâche de fond uniquement dans la mémoire du navigateur. A la fin ta page guitare.php est mise à jour dynamiquement mais sans jamais être rechargée Nota : si tu utilises AJAX tes pages guitare.php et guitare_ajax.php doivent obligatoirement faire partie du même domaine (pour simplifier on peut aussi dire qu'elles doivent être hébergées sur le même serveur) Voilà PhP Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ... |