Merci pour votre interêt.
J'essaye de faire afficher une liste de sujets (d'une base de donée). Quand on "click" sur le bouton portant le non du sujet il s'affiche quelque détails sur ce sujet issue de la base aussi.
==> Donc j'ai besoin de passer le non du sujet choisi pour afficher les details de ce sujet.
J'ai une solution simple mais je veux le faire avec le XMLHttpRequest :
La solution1 : Elle est fonctionnelle
Fichier de depart :
<?php
session_start();
?>
<html>
<head>
<title>Forum Box</title>
<STYLE TYPE="text/css">
.color1
{
background-color:#E6E6FA;
}
.color2
{
background-color:#F5F5F5
}
</STYLE>
<script language="JavaScript" type="text/JavaScript">
function GetBack(){
var x=document.getElementById('username').value;
return x;
}
</script>
</head>
<body >
<h1 align="center" > I want to color my table </h1>
<table border=3px align="center" > <tr >
<td background="raindrop.jpg"> Subjects</td>
<td background="raindrop.jpg">Number of message</td>
<td background="raindrop.jpg">see by</td></tr>
<?php
include('connectionToDB.php');
$result = mysql_query("SELECT Subject FROM Message GROUP BY Subject ");
while($row = mysql_fetch_array($result))
{
$sub=$row['Subject'];
$ResultCount = mysql_query("SELECT * FROM Message where (Subject='$sub')");
$num_rows = mysql_num_rows($ResultCount);
?>
<a href=page2.php?what=<?echo $row['Subject']; ?>>
<tr class="color1">
<td><?echo $row['Subject']; ?></td>
<td><? echo $num_rows;?></td>
</tr>
</a>
<?} ?>
</table>
</body>
</html>
La solution2 : Elle pose un problème :
Le fichier Ajax :
<?php
session_start();
?>
<html><head><title>AjaxForum</title>
<script language="JavaScript" type="text/JavaScript" src="forum.js"> </script>
<script language="javascript" type="text/javascript">
//Browser Support Code
function AjaxForumBox(elet){
var y=store(elet);
alert(y);
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "page2.php?what=y", true);
ajaxRequest.send(null);
}
function store(elet){
var y=elet.value;
//alert(y);
return y;
}
</script>
</head>
<body >
<div id='ajaxDiv'>
<?php
include('connectionToDB.php');
$result = mysql_query("SELECT Subject FROM Message");
$i=0;
while($row = mysql_fetch_array($result))
{echo $row['Subject'].":";
$i=$i+1;
?>
<br><input type="button" name="t1" value=<?echo $row['Subject'];?> onclick="AjaxForumBox(this);"></br>
<?} ?>
<?echo $i; ?><br>
</div>
</body>
</html>
on desire ouvrir "page2.php"
<html>
<head>
<title>subject messages</title>
<STYLE TYPE="text/css">
.color2
{
background-color:#F5F5F5
}
</STYLE>
<script language="JavaScript" type="text/JavaScript">
function AjaxAnswer(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay = document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "Message.php", true);
ajaxRequest.send(null);
}
</script>
</head>
<body>
<?php
$chosedSubject=$_GET['what'];
include('connectionToDB.php');
$result = mysql_query("SELECT * FROM Message where (Subject='$chosedSubject')");
//$result = mysql_query("SELECT * FROM Message where (Subject='subj2')");
?>
<h1 align="center"> <?echo $chosedSubject;?> </h1><br><br>
<center>
<table border="3" class="color2" width="30%">
<?
while($row = mysql_fetch_array($result))
{
$date=$row['ExchangedDate'];
$ResultJoin= mysql_query("SELECT JoinFile FROM Message where (ExchangedDate='$date')");
while($rowJoin = mysql_fetch_array($ResultJoin))
{
$JoinFile=$rowJoin['JoinFile'];
}
?>
<tr class="color2"><td>
<p>Sender: <?echo $row['Sender']; ?> </p>
<p>Date: <?echo $row['ExchangedDate']; ?> </p>
<p><? if($JoinFile!="") {?> <input type="IMAGE" src=Dossier.gif onclick=""> <?}?> the join file is not ready</p>
<textarea rows="8" name="message" cols="65"><?echo $row['Content']; ?> </textarea><br><br>
</td></tr>
<? } ?>
</table>
</center>
<input type="button" value="Answer" onclick="AjaxAnswer();">
<div id='ajaxDiv'> </div>
</body>
</html>
==>j'ai reussi à la faire par la manière classique mais pour la deuxième cas j'ai pas trouvé ou reside le problème.
Merci,