Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232

    [JAVA-JSP] Problema valori in request HTTP

    Salve, in una jsp ho una query ed in funzione dei risultati faccio stampare una tabella che li contiene, così
    codice:
    .
    .
    .
    out.println("<table width=\"40%\" border=\"1\">");
    out.println("<tr>");
    out.println("<td width=\"200\"><input type=\"radio\" name=\"materia\" value="+i+"_"+materie[i]+">"+materie[i]+"</td>");
    out.println("<td width=\"48%\"><div align=\"center\">");
    out.println("<select name=\"appello"+i+"\">");
    while(r2.next()){
    	out.println("<option value="+r2.getString("DATA_ESAME")+">"+r2.getString("DATA_ESAME")+"</option>");
    }
    out.println("</select></td>");
    out.println("</tr>");
    out.println("</table>");
    in questa tabella ho un modulo "radio" ed uno "select" che valorizzo con valori presi dalla query al database...mi capita che dopo il submit, quando vado a recuperare (in una servlet) i valori tramite un "request.getParameter("nome_variabile")"...non mi viene restituito il valore "completo"...ad esempio se il valore del menu a tendina che seleziono è "21 Gennaio 2005"...la request HTTP mi restituisce solo "21"...oppure se il valore è "Ciao come stai"...mi viene restituito solo "Ciao"...in pratica c'è qualche problema con gli spazi....come lo risolvo? è un problema del FORM? Aiuto!

  2. #2
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Mi pare che quando hai una stringa con degli spazi, ad esempio "Ciao a tutti" , allora allo stesso attributo sono associati tre valori "ciao", "a", e "tutti". se fai

    request.getParameter("nome_variabile")

    ottieni solo uno di questi valori.

    prova a fare cosi per ricostruire la stringa:

    String[] paramValues = request.getParameterValues("nome_variabile");
    String s = "";
    for(int i=0; i<paramValues.length; i++) {
    s = s + paramValues[i]);
    if( i < (paramValues.length - 1))
    s = s + " ";
    }

    non so se c'è un modo per far si che il browser invii direttamente la stringa intera e non la spezzi in piu valori

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  3. #3
    codice:
    out.println("<option value=\""+r2.getString("DATA_ESAME")+"\">"+r2.getString("DATA_ESAME")+"</option>");
    e

    codice:
    <input type=\"radio\" name=\"materia\" value=\""+i+"_"+materie[i]+"\">"+materie[i]+"
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  4. #4
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    è vero..ilproblema era quello...hai dimenticato di racchiudere tra le virgolette il valore dell'attributo

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    Funziona..grazie tante...vorrei capire però il meccanismo per il quale, mettendo gli apici, viene considerato il valore completo mentre senza no...

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    poichè value è un attributo (del tag option) il suo valore va incluso tra virgolette, senza virgolette dovrebbe essere sintatticamente errato, e il browser reagisce all'erre considerando come valore dell'attributo la prima stringa che incontra.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  7. #7
    Non è errato mettere valori nomi o altri attrubuti dei tag senza virgolette

    codice:
    <option value=pippo name=pluto id=id1>
    è corretto

    non è, invece, corretto dare valori con spazi a quegli attributi

    codice:
    <option value=pippo pluto name=che ne so>
    per un qualsiasi interprete vuol dire:

    attrubuto value = pippo
    attributo pluto
    attributo name = che
    attributo ne
    attributo so

    se i valori non sono tra virgolette l'interprete non può sapere a priori dove finisce il valore dell'attributo quindi prende lo spazio come terminatore
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    232
    bene...ok grazie tante a tutti

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.