Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Ho un problema di logica condizionale

    Salve,

    ho un problema di logica condizionale e in pratica si tratta di questo:

    Ho un sito di annunci che, ovviamente, prevede la possibilità di inserire delle offerte, e fin qui OK.
    Dovrei naturalmente controllare che l'offerta non sia inferiore o al prezzo base o all'ultima offerta.
    Processo l'inserimento dell'offerta in un'altra pagina rispetto a quella nella quale esiste il for di inserimento e prima del comando di aggiuornamento della tabella, che funziona regolarmente, ho inserito il controllo della validità dell'ofefrta, che preferirei fare ovviamente lato server.

    Il codice è questo:

    codice:
    Dim offre
    Dim offro
    Dim base
    Dim ultimo
    Dim annuncio
    Dim torna
    
    
    
     annuncio = Request("annuncioID")
    
     offre = Request("offerta") 
    
     base = Request("prezzo")
    
     ultimo = Request("ultima") 
    
    
    torna = "vedi_annuncio.asp?IDannuncio=" & annuncio
    
    If  (base >= offre) OR (ultimo >= offre)  Then 
    
    
    Response.Redirect(torna)
     
    End If
    Ho più volte controllato se le variabili si valorizzano correttamente, e fin qui tutto va bene, solo che non vede proprio l' IF. Niente da fare, come se la condizione non esistesse. Esegue in tutti i casi il redirect.

    Ci sto sbattendo da diverso tempo ma inutilmente.

    Ovviamente c'è qualche errore, che in genere in questo tipo di codice non faccio, ma se c'è non lo vedo.

    Qualche occhio in più oltre ai miei, ormai stanchi, potrebbe far comodo.

    Grazie per l'aiuto
    Buona giornata a tutti
    BigDaniel

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Fatti stampare a video tutte e tre le variabili.
    Tieni presente che non effettuando il casting delle stesse stai confrontando valori "testuali".

    Roby

  3. #3
    Stamparle a video per controllarle ?

    Gia fatto, e sono giuste - Mi restitisce i corretti valori numerici
    BigDaniel

  4. #4
    la soluzione te l'ha già data roby

    se non casti a numerico otterrai che

    a=30
    b=4

    a<b ---> comparazione alfanumerica, non numerica!

    se invece casti funzionerà

    CINT(a)>CINT(b) ---> comparazione numerica

    ho usato CINT per l'esempio, usa la conversione giusta in base al tipo di numero

  5. #5
    Grazie, perfetto.

    Ora funziona regolarmente.

    Buona giornata
    BigDaniel

  6. #6
    fa' il bravo, posta la soluzione (il codice)

  7. #7
    Opss.... si, chiedo scusa, hai ragione.

    codice:
    torna = "vedi_annuncio.asp?IDannuncio=" & annuncio
    
    If  ( CINT(base) >= CINT(offre)) OR (CINT(ultimo) >= CINT(offre))  Then 
    
    
    Response.Redirect(torna)
     
     Else
    
    ...............
    Colgo l'occasione, allora, per chiedere anche un'altra cosa.

    Avrei, nel redirect, la necessità di inviare 2 parametri, in modo da poter far stampare di fianco al campo di testo del form di inserimento un messaggio di errore.

    codice:
    torna = "vedi_annuncio.asp?IDannuncio=" & annuncio & 5
    Se faccio come ho fatto sopra, l'aggiunta in rosso, non mi trova più l'annuncio in quanto considerando che , per esempio, l'ID dellannuncio è 175, così come ho porvato io, passa il parametro 1755, per cui non trova più nulla.

    Non ho mai passato due parametri distinti in questo modo, e quindi non so come fare.

    Qualche suggerimento?

    Posterò poi il codice funzionante, lo prometto, non mi scorderò di farlo

    Grazie e buona giornata
    BigDaniel

  8. #8
    i parametri possono certamente essere più di uno. esempio

    pagina2.asp?param1=ciccio&param2=54&param3=nespole ecc ecc


  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Quel "5" messo lì non è un parametro...

    Roby

  10. #10
    No, in qualunque modo lo scrivo, non gli piace. Mi d auna serie di errori diversi, di volta in volta

    Praticamente, una volta che si è vrificata la condizione di cui sopra, quella che grazie al Vs. aiuto ora mi funziona, devo informare la pagina di destinazione che si è verificato un errore in modo che, se lo trova, stampa a video un messaggio.
    BigDaniel

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.