Ciao ragazzi, nuovamente a chiedere l'aiuto del forum, dal un paio di giorni sto facendo delle prove test con ajax, vorrei imparare ad usarlo, o meglio sono costretto a farlo.
Sto cercando di capirne il funzionamento per un carrello, la prova è banale
ho 4 prodotti con descrizione,prezzo che leggo da mysql e creo delle div affiancate con immagine ed informazioni, l'unica cosa richiesta è la quantità, impostata questa devo cliccare su acquista e aggiornare la tabella volatile dell'istanza legata all'indirizzo ip.
Ma sto andando troppo avanti, per ora devo solo far eseguire un calcolo banale : prezzo*qty
ma ho il primo errore bloccante, da ore cerco di capire ma non riesco:
"Cannot read property 'value' of undefined", si ma di quale valore??? le ho provate tutte.
Provo a postare il codice se qualcuno può aiutarmi, molto grato!!
Codice PHP:
<script>
function 
istanzaXHR() {
    var 
obj;
    if (
window.XMLHttpRequest) {    // Non Internet Explorer
        
obj = new XMLHttpRequest();
    } else if (
window.ActiveXObject) { // Internet Explorer
        
obj = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return 
obj;
}

obj=istanzaXHR();

function 
onStateChange() {    // Cambiamento Stato
    
if (obj.readyState == 4) { // Caricamento Avvenuto
        
if (obj.status == 200) { // con successo
            
document.getElementById("risultato").innerHTML=obj.responseText// risultato
        
} else {
            
document.getElementById("risultato").innerHTML="?";
            
alert("Errore: "+obj.statusText);
        }
    }    
}

function 
invia() {

    
inviaXHR(obj,"somma.php");
}

function 
inviaXHR(obj,url) {
    try {    
        
obj.open("POST"urltrue);    // Preparazione comunicazione
        
document.getElementById("risultato").innerHTML="..."// caricamento in corso...
        
obj.setRequestHeader('Content-Type''application/x-www-form-urlencoded');
        
obj.onreadystatechange onStateChange;
        
prezzo_V=escape(document.somma.prezzo_V.value);    // valore del primo addendo
        
qty=escape(document.somma.qty.value);    // valore del secondo addendo
        
obj.send("prezzo_V="+prezzo_V+"&qty="+qty);    // Trasferimento
    
} catch (e) {
        
document.getElementById("risultato").innerHTML="0";
        
alert("Errore: risultato "+e);
    }
    
}
</script> 
questo invece è il codice php

Codice PHP:

<div class="content-area">
    
            <div class="content-elencoprodotti">
                
           <?php

            $result 
mysql_query("SELECT * FROM internet_shop");
            while(
$row=mysql_fetch_assoc($result))
            {
                
$codice =htmlspecialchars($row['id']);
                
$name =htmlspecialchars($row['name']);
                
$desc =htmlspecialchars($row['description']);
                
$prezzo =($row['price']);
                
$dispo =intval($row['giacenza']);
                
$valore=0;    
            
            echo 

            <div class="product" >
            <form name="somma" class="jcart">
            [img]images/products/'
.$row['img'].'[/img]
                    
            <fieldset>
            <input type="hidden"  name="id" value="'
.$codice.'" />
            <input type="hidden"  name="name" value="'
.$name.'" />
             <input type="hidden" id="prezzo_V" name="prezzo_V" value="'
.$prezzo.'" maxlength="6" />
             
            <ul>
            [*][b] Disponibili : '
.$dispo.'[/b]
            [*]Prezzo € : '
.$prezzo.'
            [*]
             Q.tà : <input id="qty"  name="qty" value="0" size="3" maxlength="4" />
             
            
            [/list]
                     
              [url="#"]<span>Acquista</span>[/url]  
                    
            </fieldset>
            </form>
                    
            
            </div>'
;
                
            }

            
?>
                
               <div class="clear"></div>
                
            </div>

    </div>
        
        <div class="bottom-container-border">         </div>
    </div>
</div>
lo script che viene richiamato da ajax è questo : somma.php
Codice PHP:

<?php
if (isset($_POST['prezzo_V']) && isset($_POST['qty'])) {
    
$prezzo_V=substr($_POST['prezzo_V'],0,8);
    
$qty=substr($_POST['qty'],0,4);
    echo 
$prezzo_V $qty;
} else {
    echo 
"Mancano dati";    
}
?>