problema recupero valore con getElementById

  • Creatore Discussione Creatore Discussione Osprey
  • Data di inizio Data di inizio

Osprey

Nuovo Utente
3 Lug 2009
3
0
0
Buongiorno a tutti.
Sto creando un piccolo script Ajax per una mini galleria di immagini generata con php.
La mia intenzione è di passare allo script php il codice della foto attualmente invisione per consentirgli di generare la foto successiva. Il passaggio avverrebbe cliccando su "foto successiva" o "foto precedente".
Salvo il codice numerico dell'immagine che in quel momento è in visione in un campo di tipo hidden e per passarlo tramite $_GET allo script php lo recupero tramite:
myTextField = parseInt(document.getElementById("nascosto").value);

Il problema è che ad un primo click invece di comparire il codice dell'immagine mi compare "undefined" e solo con un secondo click riesco a vedere il codice. Grazie mille a chi vorrà aiutarmi.

Questo è il listato della pagina, tralascio solo lo script php che genera il codice dell'immagine in visione ed inserisco nel campo hidden un codice non generato dinamicamente.
Nella funzione showImage ho anche inserito un alert di prova... lì il codice dell'immagine viene recuperato senza problemi!

<html>
<body>
<script type="text/javascript">

var myTextField; //contiene il codice dell'immagine attualmente in visione

function showImage(img_param)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Il tuo browser non è compatibile con AJAX!");
return;
}
var url="nextImg.php";
url=url+"?num="+img_param;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
myTextField = parseInt(document.getElementById("nascosto").value);
alert("You entered: " + myTextField)
}

function stateChanged()
{
if (xmlhttp.readyState==4)
{
document.getElementById("nuovocodice").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}

</script>

<input type="hidden" id="nascosto" value="123456">
<p id="nuovocodice">
Qui verrà visualizzata la nuova immagine
</p>


<table>
<tr><td>precedente</td><td><div onClick="showImage(myTextField)"><a href=#>successiva</a></div></td></tr>
</table>

</body>
</html>

L'elementare script di prova nella pagina nextImg.php è

<?php
$num=$_GET['num'];
echo $num;
?>

Grazie mille!
 

Discussioni simili