Ciao a tutti,
Ho un problema con un sito che sto realizzando per studio.
Nel sito devo utilizzare tecniche ajax, perciò ho utilizzato un menu ad albero che si carica dinamicamente, ma quando si clicca su un item (voce del menu) vorrei caricare del contenuto (una serie di libri) nella colonna a destra del sito.
ho pensato di inserire un richiamo ad una funzione javascript nel div della voce. Questa funzione utilizza una XMLHttpRequest per chiamare una pagina php. riginariamente chiamava una pagina html. Nella pagina php c'è una query ad un DB che restituisce tutti i libri che corrispondono al genere desiderato in risposta alla richiesta ajax.
Premetto che il sito funziona, ma alla richiesta del file php non restituisce niente.
Quale potrebbe essere il problema?
Vi posto il file php e parte della pagina principale con il java-script:
file libri.php
<?php
if(isset($_GET['id'])){
$conn = oci_connect('system', 'admin', 'XE');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$query = "select * from libri where categoria='".$_GET['id']."'";
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);
while($inf = oci_fetch_array($stid)){
$counter = 1;
echo "<div class=\"section upper\"><div class=\"product_container\"><br><div id=\"slidingProduct".$inf[0]." class=\"sliding_product\"><img src=\"images/\"".$inf[0].".gif\"> ----- </div><a href=\"#\" onclick=\"addToBasket(".$inf[0].");return false;\"><img src=\"images/basket.gif\"></a><div class=\"clear\"></div></div></div>";
}
oci_close($conn);
}
?>
script della funziona utilizzata
<script type="text/javascript">
var rootdomain="http://"+window.location.hostname
function ajaxpage(url, id, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
var urlid=url+"?id="+id;
page_request.open('POST', urlid, true)
page_request.send(null)
}
function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}
</script>
menu ad albero
<div id="leftColumn">
<!--Menù di navigazione ad albero dove i nodi sono caricati dinamicamente grazie all'uso di Ajax-->
<ul id="tree" class="tree">
<?php
$conn = oci_connect('system', 'admin', 'XE');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$query = "select * from categoria where parentId='0'";
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);
while($inf = oci_fetch_array($stid)){
echo "<li><a href=\"java-script:ajaxpage('books.php','".$inf["ID"]."', 'slider'); \" id=".$inf["ID"].">".$inf["NOME"]."</a>";
$resSub = oci_parse($conn, "select ID from categoria where parentId='".$inf["ID"]."'");
oci_execute($resSub, OCI_DEFAULT);
if($infSub = oci_fetch_array($resSub)){
echo "<ul><li parentId=\"".$inf["ID"]."\"><a href=\"#\">Loading...</a></li></ul>";
}
echo "</li>";
}
oci_close($conn);
?>
</ul>
</div>
Ho un problema con un sito che sto realizzando per studio.
Nel sito devo utilizzare tecniche ajax, perciò ho utilizzato un menu ad albero che si carica dinamicamente, ma quando si clicca su un item (voce del menu) vorrei caricare del contenuto (una serie di libri) nella colonna a destra del sito.
ho pensato di inserire un richiamo ad una funzione javascript nel div della voce. Questa funzione utilizza una XMLHttpRequest per chiamare una pagina php. riginariamente chiamava una pagina html. Nella pagina php c'è una query ad un DB che restituisce tutti i libri che corrispondono al genere desiderato in risposta alla richiesta ajax.
Premetto che il sito funziona, ma alla richiesta del file php non restituisce niente.
Quale potrebbe essere il problema?
Vi posto il file php e parte della pagina principale con il java-script:
file libri.php
<?php
if(isset($_GET['id'])){
$conn = oci_connect('system', 'admin', 'XE');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$query = "select * from libri where categoria='".$_GET['id']."'";
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);
while($inf = oci_fetch_array($stid)){
$counter = 1;
echo "<div class=\"section upper\"><div class=\"product_container\"><br><div id=\"slidingProduct".$inf[0]." class=\"sliding_product\"><img src=\"images/\"".$inf[0].".gif\"> ----- </div><a href=\"#\" onclick=\"addToBasket(".$inf[0].");return false;\"><img src=\"images/basket.gif\"></a><div class=\"clear\"></div></div></div>";
}
oci_close($conn);
}
?>
script della funziona utilizzata
<script type="text/javascript">
var rootdomain="http://"+window.location.hostname
function ajaxpage(url, id, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
var urlid=url+"?id="+id;
page_request.open('POST', urlid, true)
page_request.send(null)
}
function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}
</script>
menu ad albero
<div id="leftColumn">
<!--Menù di navigazione ad albero dove i nodi sono caricati dinamicamente grazie all'uso di Ajax-->
<ul id="tree" class="tree">
<?php
$conn = oci_connect('system', 'admin', 'XE');
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}
$query = "select * from categoria where parentId='0'";
$stid = oci_parse($conn, $query);
$r = oci_execute($stid, OCI_DEFAULT);
while($inf = oci_fetch_array($stid)){
echo "<li><a href=\"java-script:ajaxpage('books.php','".$inf["ID"]."', 'slider'); \" id=".$inf["ID"].">".$inf["NOME"]."</a>";
$resSub = oci_parse($conn, "select ID from categoria where parentId='".$inf["ID"]."'");
oci_execute($resSub, OCI_DEFAULT);
if($infSub = oci_fetch_array($resSub)){
echo "<ul><li parentId=\"".$inf["ID"]."\"><a href=\"#\">Loading...</a></li></ul>";
}
echo "</li>";
}
oci_close($conn);
?>
</ul>
</div>