Sto cercando di realizzare una pagina, in cui una parte dei contenuti venga caricata - tramite richiesta ad una pagina .php - in base alla selezione fatta dall'utente.
Quindi, ho questo codice JS:
Codice PHP:
<script language="JavaScript" type="text/JavaScript">
function createRequestObject() {
var ro;
var browser = navigator.appName;
if (browser == "Microsoft Internet Explorer") {
ro = new ActiveXObject("Microsoft.XMLHTTP");
} else {
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
function sndReq(action) {
http.open('get', 'loadata.php?action='+action);
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if (http.readyState == 4) {
var response = http.responseText;
var update = new Array();
var loadata = 'loadata';
update = document.getElementById(loadata).innerHTML = update[0];
}
}
</script>
Nella pagina, ho questo HTML:
Codice PHP:
[url="javascript:sndReq('full')"][b]international[/b][/url]
[url="javascript:sndReq('eu')"][b]europe[/b][/url]
[url="javascript:sndReq('am')"][b]america[/b][/url]
[url="javascript:sndReq('as')"][b]asia[/b][/url]
[url="javascript:sndReq('au')"][b]australia[/b][/url]
[url="javascript:sndReq('af')"][b]africa[/b][/url]
<div id="loadata" style="position:absolute;top:150;left:15;width:720;height:303; overflow:auto; padding:3"></div>
Mentre la pagina .php richiamata contiene questo codice:
Codice PHP:
require "config.php";
switch($_REQUEST['action']) {
case 'full': $loc = "full";
case 'eu': $loc = "eu";
case 'am': $loc = "am";
case 'as': $loc = "as";
case 'au': $loc = "au";
case 'af': $loc = "af";
echo "[i]<font color=\"#0279d1\">This is the last 10 news, selected by location: [b]" . $loc . "[/b]</font>[/i]
";
$link = mysql_connect($host, $dbuser, $dbpass)
or die("Impossibile connettersi al database");
mysql_select_db($dbname)
or die("Impossibile selezionare il database");
$result = mysql_query("SELECT * FROM `news` WHERE `location` = '$loc' ORDER BY `news_id` DESC LIMIT 10");
while ($row = mysql_fetch_array($result)) {
$tit = $row["title"];
$tit = strtoupper($tit);
echo "<hr>[b]<font color=\"#0279d1\">" . $tit . "</font>[/b]
";
echo $row["text"] . "
";
$mail = $row["email"];
if ($mail !== "") {
$mail = strtolower($mail);
echo "E-mail: [b]<a href=\"mailto:" . $mail . "\">" . $mail . "</a>[/b]
";
}
$link = $row["link"];
if ($link !== "") {
$link = strtolower($link);
echo "Web: [b]<a href=\"http://" . $link . "\" target=\"_blank\">" . $link . "</a>[/b]
";
}
$start = $row["start"];
if ($start !== "") {
echo "Opening: [b]<font color=\"#0279d1\">" . $start . "</font>[/b]
";
}
$dead = $row["deadline"];
if ($dead !== "") {
echo "Deadline: [b]<font color=\"#0279d1\">" . $dead . "</font>[/b]
";
}
echo "
<font size=\"-1\">Location: [b]<font color=\"#FF0000\">" . $row["location"] . "</font>[/b]</font>
";
echo "<font size=\"-1\">Tag: [b]<font color=\"#FF0000\">" . $row["tag"] . "</font>[/b]</font>
";
echo "<font size=\"-1\">kind: [b]<font color=\"#FF0000\">" . $row["kind"] . "</font>[/b]</font>
";
}
echo "
";
}
Però, quando vado a fare un test, cliccando uno qualunque dei link predisposti mi da come risultato undefined.
É la prima volta che mi cimento con l'interfacciamento AJAX/PHP, quindi è molto probabile che stia facendo qualche fesseria...
Qualcuno sa darmi una mano?