Besoin d'aide javascript/php

Fermé
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 - 1 juin 2009 à 12:06
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 - 1 juin 2009 à 15:20
Bonjour,
je suis en train de developper un gestionnaire de tâches.
J'ai mis dans la page qui affiche les tâches d'une personne une liste déroulante pour pouvoir ( au choix ) , ses tâches, les tâches de quelqu'un d'autre ou les tâches de totu le monde.

Je voudrais que lorsque l'on clique sur un élément de la liste déroulante, le tableau qui affiche les informations concernant la tâche se mette a jour tout seul.J'ai donc commencer un petit bout de javascript :

function ChangePers(nom){
				 var val = nom.options[nom.selectedIndex].value;
				alert(val) ;
				
			}

qui me permet de récuperer l'id de l'utilisateur. Or, dans mon code php , j'ai une requete ou sql ou il y a :

$login = $_SERVER['PHP_AUTH_USER'];
$requeteselect = 'SELECT a.id,a.titre,a.theme,b.login as utilisateur,echeance,commentaire, c.login as assigne_par FROM tache a,utilisateurs b, utilisateurs c WHERE b.id = a.utilisateur AND c.id = a.assigne_par AND a.echeance >= CURDATE() AND b.login = \''.$login.'\'';


je voudrais donc récuperer le login associé a l'id récupéré, l'envoyer au php pour que sa affiche les tâches concernant l'utilisateur sélectionné , masi j'ai du mal a trouvé ce dont j'ai besoin sur le net , si quelqu'un veut bien medonner une solution...



ps : voici mes codes en entier :
liste_taches.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <link rel = "stylesheet" type = "text/css" title = "CSS test" href = "styles.css" />
        <link rel = "stylesheet" type = "text/css" title = "CSS test" href = "style.css" />
        <script type="text/javascript" src="js/jquery-1.3.2.js">
        </script>
        <script type="text/javascript">
        	function ChangePers(nom){
				 var val = nom.options[nom.selectedIndex].value;
				alert(val) ;
				
			}
        
        </script>
        <title>acceuil</title>
    </head>
    <body>
        <table border="1" id"tableau">
            <tr>
                <th>
                    titre
                </th>
                <th>
                    théme
                </th>
                <th>
                    utilisateur
                </th>
                <th>
                    echéance
                </th>
                <th>
                    commentaire
                </th>
                <th>
                    assigné par
                </th>
            </tr>
            <?php
			include('script.php');
            $tableau = array ();
            $i = 0;
            while ($tache = mysql_fetch_array($result))
            {
                $tableau[$tache['id']]['titre'] = $tache['titre'];
                $tableau[$tache['id']]['theme'] = $tache['theme'];
                $tableau[$tache['id']]['utilisateur'] = $tache['utilisateur'];
                $tableau[$tache['id']]['echeance'] = $tache['echeance'];
                $tableau[$tache['id']]['commentaire'] = $tache['commentaire'];
                $tableau[$tache['id']]['assigne_par'] = $tache['assigne_par'];
            }
            
            foreach ($tableau as $tab)
            {
                echo '<tr>
            						<td>'.$tab['titre'].'</td>
            						<td>'.$tab['theme'].'</td>
            						<td>'.$tab['utilisateur'].'</td>
            						<td>'.$tab['echeance'].'</td>
            						<td>'.$tab['commentaire'].'</td>
            						<td>'.$tab['assigne_par'].'</td>
            					  </tr>
            					';
            }
            
            
            ?>
        </table>
        <select name="liste" id="notice" onchange="javascript:ChangePers(this)">
            <?
            $requetepers = 'SELECT id,login FROM utilisateurs';
            $res = mysql_query($requetepers) or die ($requetepers);
            $tabpers = array ();
            $j = 0;
            while ($personne = mysql_fetch_array($res))
            {
                $tabpers[$personne['id']]['login'] = $personne['login'];
                $tabpers[$personne['id']]['id'] = $personne['id'];
            }
            foreach ($tabpers as $tabp)
            {
                $j = $tabp['id'];
                echo '
            				<option value='.$j.'>'.$tabp['login'].'</option>
            					';
            
            }
            $j = $j+1;
            echo '<option value='.$j.' >tous</option>';
            switch($j)
            {
                default:
            
            }
            ?>
        </select>
    </body>
</html>

script.php :

<?php
$login = $_SERVER['PHP_AUTH_USER'];
            if ($affich != "tout")
            {
                include ('conf.php');
                $requeteselect = 'SELECT a.id,a.titre,a.theme,b.login as utilisateur,echeance,commentaire, c.login as assigne_par FROM tache a,utilisateurs b, utilisateurs c WHERE b.id = a.utilisateur AND c.id = a.assigne_par AND a.echeance >= CURDATE() AND b.login = \''.$login.'\'';
                $result = mysql_query($requeteselect) or die ($requeteselect);
            } else
            {
                include ('conf.php');
                $requeteselect = 'SELECT a.id,a.titre,a.theme,b.login as utilisateur,echeance,commentaire, c.login as assigne_par FROM tache a,utilisateurs b, utilisateurs c WHERE b.id = a.utilisateur AND c.id = a.assigne_par  ';
                $result = mysql_query($requeteselect) or die ($requeteselect);
            }
			
?>
conf.php :
<?
function connection () {   
$serveur= "localhost";
$base = "db_gestiont96";          // database name
$login = "db_gestiont96";
$pass = "gqQ23qdn";
$connect = MYSQL_CONNECT ($serveur,$login,$pass) or die("Connexion impossible");   
mysql_select_db("$base") or die("Connexion impossible");     
}    
connection();

$nom_authentification='Ediware';
$auth = false; // Assume user is not authenticated 
if (isset( $PHP_AUTH_USER ) && isset($PHP_AUTH_PW)) { 
   // Formulate the query 
    $sql = "SELECT * from utilisateurs WHERE login = '$PHP_AUTH_USER' AND pass = PASSWORD('$PHP_AUTH_PW')"; 
    // Execute the query and put results in $result 
    $result = mysql_query( $sql ) or die ( 'Unable to execute query.' ); 
    // Get number of rows in $result. 
    $num_verif = mysql_numrows( $result ); 
    if ( $num_verif != 0 ) { 
        // A matching row was found - the user is authenticated. 
        $auth = true; 
        $num_user=mysql_result($result,0,0);
        $administrateur=mysql_result($result,0,3);
    } 
} 
if ( ! $auth ) { 

    header( 'WWW-Authenticate: Basic realm="Accès sécurisé '.$nom_authentification.'"' ); 
    header( 'HTTP/1.0 401 Unauthorized' ); 
    echo 'Accès refusé'; 
    exit; 
}  

$devise='&euro;';
$devise_pdf='&#128;';

//header('Content-Type: text/html; charset=ISO-8859-1');
//header('Content-Type: text/html; charset=Windows-1252');
//header('Content-Type: text/html; charset=UTF-8');
?>
A voir également:

9 réponses

wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
1 juin 2009 à 13:42
Si j'ai bien compris, ton problème est juste de savoir comment actualiser un bout de ta page sans actualiser toute ta page.

Pour cela, tu peux faire appel à de l'AJAX avec la requete : XMLHttpRequest()

Voila un tutos si tu veux : http://www.siteduzero.com/tutoriel-3-4745-ajax-et-l-echange-de-donnees-en-javascript.html
0
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 1
1 juin 2009 à 13:45
ok je vais y jeter un oeil .
0
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 1
1 juin 2009 à 14:00
autre petite question
j'ai ma table d'utilisateurs qui ressemble a sa
id | login | nom ...
1 | test | test ...

dans mon JS je récupère l'id , mais dans ma requête il me faut le login ... comment est ce que je peux faire ?
0
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
1 juin 2009 à 14:39
Tu peux justement utiliser la requete : XMLHttpRequest() qui envoie une variable avec l'id à une page php, executé coté serveur.
Cette page php regarde ensuite dans ta table le login correspondant à ton id, et renvoie une variable contenant le login.

Pour savoir comment faire, lis bien la partie sur "L'objet XMLHttpRequest" dans le lien que je t'ai donnée.

Tout y est marquer :
-Envoi d'une requête HTTP
-Traitement côté serveur
-Récupération des données
0

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

Posez votre question
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 1
1 juin 2009 à 14:40
je voudrais juste rajouter que le XMLHttpRequest() ne marche pas du tout ... c'est ptetre moi qui a merdé :

la fonction s'éxécute ( j'ai mis des alert dedans pour vérifier ) mais le tableau ne bouge pas , pas de rechargement , rien.
0
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
1 juin 2009 à 14:47
Enfaite il faut que ta page php renvoie le nouveau code html de l'interieur de ton tableau par :

echo "ici le code html avec les balises";


Ensuite tu dois utiliser la fonction javascript innerHTML pour dire a ta page que cette partie (tu choisis la partie du code avec un id="" dans une <div>) du code doit changer.

ex:

var reception = (egal a la reponse de ta requete XMLHttpRequest )

var change = document.getElementById('ton_id');
change.innerHTML=reception;
0
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 1
1 juin 2009 à 14:59
heu ... jsuis complétement largué la ... :S
0
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
1 juin 2009 à 15:11
Ex si ton code de ta page était :

<html>
<head>
</head>
<body>
<script type="text/javascript"  scr="ton_script"></script>
       <div id="id_change">
      
     </div>
</body>
</html>

Dans ton script tu fais ta requete qui execute la page php qui est par exemple juste:

echo "<p>Test </p>";


Ensuite tu receptionnes cette reponse et tu l'utilise avec innerHTML :

var reception = sData (nom de la variable de reponse dans le tutos)
var change = document.getElementById('id_change');  (ici tu recupere l'emplacement où tu vas mettre e code)
change.innerHTML=reception;


au final tu obtiendra :

<html>
<head>
</head>
<body>
<script type="text/javascript"  scr="ton_script"></script>
       <div id="id_change">
      
         <p>Test </p>

     </div>
</body>
</html>
0
rubixcube Messages postés 8 Date d'inscription lundi 1 juin 2009 Statut Membre Dernière intervention 22 novembre 2012 1
1 juin 2009 à 15:20
mouai cest toujorus pareil.

quand je change la valeur dans le <select> rien ne se passe ... a part mon alert qui m'affiche l'id.

edit : les alerts marchent même plus maintenant ><
0