richiamare file php da funzione javascript

gabrios84

Nuovo Utente
27 Ott 2008
3
0
0
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>
 
giusto per curiosità, stai testando lo script con FFox o con IE? E se usi IE per caso ti restituisce qualche errore di Js tipo "oggetto mancante"?
 
Concordo :mavieni:, però prova a fare un test con IE, se c'è un errore di JavaScript te lo segnala subito.
 
Ho risolto tutto, il problema era che facevo la chiamato con POST e la prelevavo con GET....una stronzata, ma a volte non vedi gli errori + banali!:fonzie:
 

Discussioni simili