Récupérer le title pour chercher une info dans la BD

Petit nouveau ! | 3 Messages

05 sept. 2011, 18:23

Bonjour à tous,

voici un problème sur lequel je planche depuis quelques jours. Voilà, j'utilise un code Javascript pour récupérer le title de ma page (fonction $nom) et je le fais inscrire dans ma page. Avec ce title récupérer, j'aimerais faire une comparaison dans ma base de données avec une colonne nommée ccours et le title obtenu afin d'extraire les infos de la colonne dates. J'espère que je suis clair, sinon n'hésitez pas à me poser des questions

Merci de votre aide
    <?php
      $db = new mysqli('*******','*********','**********','**********');
      $db->query("SET NAMES utf8");
      if (mysqli_connect_errno()) {
     
        echo "Impossible de connecter";
     
      }
    $nom="<div id='nom_cours'><script language='javascript' type='text/javascript'>
    document.write(document.title.substring(0,document.title.length-11));
    </script></div>";
     
    if (isset($nom)) {
     echo "$nom";
     }
     
      $query= "SELECT * FROM ed_seminair WHERE ccours='$nom'";
     
     
      $resultat = $db->query($query);
     
     
      $nb_lig_resultat = $resultat->num_rows;
    echo "<b>" . "dates des prochaines formations :" . "</b>" . "<br />" ;
     
      for ($i = 0; $i < $nb_lig_resultat; $i++) {
     
        $ligne = $resultat->fetch_assoc();
     
    echo ($ligne['dates']);
     
      }
     
     
    ?>

Modifié en dernier par mamillette le 05 sept. 2011, 18:53, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10433 Messages

05 sept. 2011, 18:48

Petit rappel chronologique : php s'exécute sur le serveur pour générer une page, javascript s'exécute sur le navigateur après génération de la page. Tu ne pourras donc jamais exploiter un résultat javascript avec php sans renvoyer de données au serveur (via un rechargement ou via ajax).

Si tu n'as pas moyen de connaitre le titre de ta page en php (via une variable définie précédemment, une valeur passée en paramètre, ou une récupération en base ou ailleurs), ça ne fonctionnera pas :(
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
AB
ViPHP | 5818 Messages

05 sept. 2011, 19:33

Oui à part ajax, point de salut dans ton cas (sauf à faire un rechargement de la page peu glorieux).

Sinon tu pourrais peut-être revoir ta méthode, soit revoir le fonctionnement de l'ensemble, soit récupérer l'url de ta page en php avec $_SERVER[''REQUEST_URI''] et en fonction de ce paramètre (ou en fonction de $_SERVER['QUERY_STRING'] ) faire ta requête pour récupérer les infos correspondantes.

ViPHP
AB
ViPHP | 5818 Messages

05 sept. 2011, 21:58

Comme mon petit doigt me dit que tu utilises jquery (et Drupal) :P , à défaut de pouvoir exploiter $_SERVER['REQUEST_URI'] ou $_SERVER['QUERY_STRING']) je te donne un petit exemple d'ajax avec jquery en version longue :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src = "scripts/jquery.js" type = "text/javascript"></script>
<title>Document sans titre</title>
<script type = "text/javascript">
$(function()
{
	$.ajax({
	dataType: "html",//en admenttant que tu retourne du html
	type: "POST",
	url: 'test.php',
	data: 'titre='+$(document).attr("title"),
 
	success: function(result)
		{
			$("#content").empty().append(result);
		}
	});	
})
</script>
</head>
 
<body>
<div id = "content"></div>
</body>
</html>
page test.php
<?php
if (isset($_POST['titre']))
 
echo htmlspecialchars($_POST['titre']);
 
?>
A toi de modifier test.php en utilisant $_POST['titre'] pour faire ta requête et retourner ce que tu veux :wink:

Petit nouveau ! | 3 Messages

05 sept. 2011, 22:06

merci AB je vais tester ta méthode ajax

Petit nouveau ! | 3 Messages

05 sept. 2011, 22:22

super ton code, si je veux retirer les 11 derniers caractères du title je fais comment?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8759 Messages

06 sept. 2011, 00:01

salut,

substr ...


@+
Il en faut peu pour être heureux ......

ViPHP
AB
ViPHP | 5818 Messages

06 sept. 2011, 01:27

Et en javascript c'est substring.
Mais normalement tu devrais tout aussi bien pouvoir le faire côté php avec la fonction que t'a indiquée moogli