Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    Incartato su If else che estrapola dati da database

    codice:
    //funzione chiamata ajax
        function RD1x(dati,codcliente){
            
        ajx2 = objAjx2();
        if(ajx2){
        ajx2.open('GET', "QueryJsonUltimoPreventivo.asp?q='"+dati+"'&q2='"+codcliente+"'&noCache="+ Math.floor(Math.random() * (9999)), true)    
        ajx2.send(null)
        
        //verifico il cambio di stato
            ajx2.onreadystatechange=function(){
            //verifico quando lo stato e 4 (risposta del server)
            if (ajx2.readyState == 4 && ajx2.status==200){
            //creo array dati 
            var dati = JSON.parse(ajx2.responseText)
            //popolo il form separando i dati josn
    
    
     if (dati[0].PrezzoUnitarioRow == undefined) {
        document.getElementById('CodRow1').value= "testKo"; 
        } else  {
        document.getElementById('CodRow1').value= dati[0].PrezzoUnitarioRow;  
        }
    
    ...
    se dati[0].PrezzoUnitarioRow esiste la funzione fa il suo lavoro ma se dati[0].PrezzoUnitarioRow non esiste (ovvero non viene trovato alcun valore dal database) il browser mi avverte che c'è un errore:
    uncaught typeerror cannot read property 'PrezzoUnitarioRow' of undefined



    Il mio obiettivo è che quando dati[0].PrezzoUnitarioRow è undefined lo script faccia questo:

    document.getElementById('CodRow1').value= "testKo";

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Fallo fare ad asp se il dato manca al suo posto inserisci "testKo", anche se probabilmente c'è qualche errore nella formattazione json asp in quanto se un valore manca dovrebbe lasciare il campo vuoto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Se vado sull'url QueryJsonUltimoPreventivo.asp?q='9'&q2='357' il browser mi stampa [{"IDarticolo":"9","PrezzoUnitarioRow":"52","IDclie nti":"357"},{"IDarticolo":"9","PrezzoUnitarioRow": "50","IDclienti":"357"}]

    mentre se al posto di 9 inserisco 3 (id che non soddisfa la query)
    QueryJsonUltimoPreventivo.asp?q='9'&q2='357'
    il browser mi stampa []

    quindi lato asp dovrebbe essere giusto.

    forse credo ci sia un errore di logica da parte mia lato javascript; mi spiego meglio

    io chiedo:

    se
    dati[0].PrezzoUnitarioRow è diverso da undefined allora fai....

    il problema è che javascript mi blocca subito appena vede che
    dati[0].PrezzoUnitarioRow è undefined e aspetta la condizione if ma da l'errore proprio dicendo che dati[0].PrezzoUnitarioRow è undefined e non posso usarlo nell'if; credo di dover cambiare la logica.

    p.s.: come suggeriresti di far stampare ad asp il valore testKo?

    direttamente dalla select di
    QueryJsonUltimoPreventivo.asp?

    QueryJsonUltimoPreventivo.asp
    codice:
    
    
    codice:
    QueryToJSON(Conn, "SELECT IDarticolo,PrezzoUnitarioRow,IDclienti FROM PreventivoRows WHERE IDarticolo  = "&request("q")&" AND IDclienti= "&request("q2")&" ORDER BY productID DESC").Flush
    

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che passare un id nullo ad una query json lo ritengo parecchio assurdo, per quanto ne so json non può essere vuoto (che senso ha inviare un array vuoto) lato server prima di generare json fai una query che controlla se l'id è valido se è positivo generi json altrimenti da un messaggio 'id inesistente', mentre lato js prima di parsare json metti un if(ajx2.responseText!='id inesistente'){
    alert(ajx2.responseText)}else{tuo codice....}
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    ok, lo dicevo che sbagliavo la logica;

    ho risolto con if(ajx2.responseText!='[]') etc etc...

    Grazie mille Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.