Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149

    Errore Notice: Undefined index in controllo campi javascript

    Buona sera a tutti,
    ho bisogno cortesemente del vostro aiuto.
    Ho creato una database, vi faccio l'esempio che vi allego, con i campi: nome_utente di tipo varchar(40), tipo_struttura di tipo varchar(19),voto_qualita_cam e voto_ristorante di tipo varchar(13), e infine data_ora_ins di tipo datetime.
    Ho creato un unico file in php con uno switch, diviso in tre parti: la form in html dove scrivo il nome e faccio delle selezioni, la seconda parte che scrive i dati della form nel database, e il terzo campo che visualizza i dati del database a video.
    Ho easyPHP installato.
    Ho attivato dei controlli tramite javascript che mi espongono un alert ogni volta che lascio il campo nome vuoto o i campi select senza selezionare nessuna voce, però contestualmente ho attivato un altro javascript che a seconda delle selezioni fatte nella prima select, mi abilita o disabilita le select successive, ad esempio se provo a selezionare "3" nella select che si chiama "seleziona" mi disabilita le due select successive.
    Il problema sta proprio qui, quando le select vengono disattivate non dovrebbe esserci il controllo campo obbligatorio, mentre in realtà cosi com'e' ora mi disabilita le select, quando faccio SUBMIT mi appare l'alert che non ho inserito il campo obbligatorio previsto dalla select(errato,non dovrebbe apparire,ed è questa una delle cose che ho bisogno di sistemare), e quando do OK lui comunque scrive i dati nel database correttamente segnalandomi però un "Notice: Undefined index" per tutti i campi che sono rimasti vuoti(ovvero senza selezione poichè disabilitati da javascript).
    Potete cortesemente aiutarmi in merito?come posso risolvere il problema togliendo l'alert quando i campi sono disabilitati e togliendo il "notice" che mi segnala per i campi vuoti e disabilitati?
    Grazie mille in anticipo e buona notte

    Allego php:

    <?php
    $connessione=mysql_connect("localhost", "root", "");
    $selezione_db=mysql_select_db("laterra_db", $connessione);
    ?>
    <HTML>
    <HEAD>
    <TITLE>La Terra delle Opinioni</TITLE>
    <script language="JavaScript">
    function disab(tipo_struttura){
    if(tipo_struttura=="3"){
    document.moduloGuest.voto_qualita_cam.disabled=tru e;
    document.moduloGuest.voto_ristorante.disabled=true ;
    }
    else if(tipo_struttura=="4"){
    document.moduloGuest.voto_qualita_cam.disabled=fal se;
    document.moduloGuest.voto_ristorante.disabled=true ;
    }
    else if(tipo_struttura=="6"){
    document.moduloGuest.voto_ristorante.disabled=true ;
    }
    else{
    document.moduloGuest.voto_qualita_cam.disabled=fal se;
    document.moduloGuest.voto_ristorante.disabled=fals e;
    }
    }
    </script>
    <script language="JavaScript">
    function controllo(){
    with(document.moduloGuest) {
    if(nome_utente.value=="") {
    alert("Inserisci cortesemente il tuo nome.");
    nome_utente.focus();
    return false;
    }
    if(tipo_struttura.value=="") {
    alert("Inserisci cortesemente la tipologia di struttura per poter registrare la recensione.");
    tipo_struttura.focus();
    return false;
    }
    if(voto_qualita_cam.value=="") {
    alert("Inserisci cortesemente il voto che intendi dare alla qualità delle camere per poter registrare la recensione.");
    voto_qualita_cam.focus();
    return false;
    }
    if(voto_ristorante.value=="") {
    alert("Inserisci cortesemente il voto che intendi dare al ristorante per poter registrare la recensione.");
    voto_ristorante.focus();
    return false;
    }
    }
    return true;
    }
    </script>
    </HEAD>
    <BODY>
    <?php
    function nrecensione(){
    ?>
    <form name="moduloGuest" id="moduloGuest" onSubmit="return controllo();" onchange="disab(this.options[this.selectedIndex].value)" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="hidden" name="azione" value="elabora" />
    <table>

    <tr>
    <td> Indica cortesemente il tuo nome </td>
    <td><input type="text" name="nome_utente" id="nome_utente" size="30" maxlength="40" value=""></td>
    </tr>

    <tr>
    <td> seleziona </td><td><select name="tipo_struttura" id="tipo_struttura" onChange="disab(this.options[this.selectedIndex].value)" style="font-size: 11px;">
    <option value=""> </option>
    <option value="1"> 1 </option>
    <option value="2"> 2 </option>
    <option value="3"> 3 </option>
    <option value="4"> 4 </option>
    <option value="5"> 5 </option>
    <option value="6"> 6 </option>
    <option value="7"> 7 </option>
    </select></td>
    </tr>

    <tr>
    <td valign="top">Dai un voto globale a: </td>
    <td>


    • camere
    <select name="voto_qualita_cam" id="voto_qualita_cam" style="font-size: 11px;">
    <option value=""> </option>
    <option value="A"> A </option>
    <option value="B"> B </option>
    <option value="C"> C </option>
    <option value="D"> D </option>
    <option value="E"> E </option>
    </select>


    • ristorante
    <select name="voto_ristorante" id="voto_ristorante" style="font-size: 11px;">
    <option value=""> </option>
    <option value="A"> A </option>
    <option value="B"> B </option>
    <option value="C"> C </option>
    <option value="D"> D </option>
    <option value="E"> E </option>
    </select>


    </td>
    </tr>
    <tr>
    <td align="center" colspan="2"><input type="submit" value="Invia il messaggio!"></td>
    </tr>
    </table>
    </form>
    <?php
    }
    function elabora_guest(){
    if($_POST){
    $inserimento=mysql_query("insert into recensioni (nome_utente, voto_qualita_cam, voto_ristorante, data_ora_ins) values ('".$_POST['nome_utente']."', '".$_POST['voto_qualita_cam']."', '".$_POST['voto_ristorante']."', now())");
    echo "Messaggio inviato con successo";}
    else{
    die("Inserisci i dati necessari alla registrazione della recensione.");
    }
    }
    ?>
    <?php
    function read_guest(){
    $lettura_risultati=mysql_query("select nome_utente, voto_qualita_cam, voto_ristorante, date_format(data_ora_ins, '%d/%m/%Y - ore %H:%i:%s') as data_formattata from recensioni order by anno_sogg");
    if(mysql_num_rows($lettura_risultati)>0){
    echo "<table>";
    $flag_colore=0;
    while($scatola_temporanea=mysql_fetch_array($lettu ra_risultati)){
    $nome_utente=$scatola_temporanea['nome_utente'];
    $voto_qualita_cam=$scatola_temporanea['voto_qualita_cam'];
    $voto_ristorante=$scatola_temporanea['voto_ristorante'];
    $data_ora_ins=$scatola_temporanea['data_formattata'];
    echo "<tr>";
    if($flag_colore==0){
    echo "<td bgcolor=\"#FFFF00\">";
    $flag_colore=1;
    }
    else{
    echo "<td bgcolor=\"#C0C0C0\">";
    $flag_colore=0;
    }
    echo "Utente: $nome_utente

    Voto qualit&agrave delle camere: $voto_qualita_cam

    Voto sul ristorante: $voto_ristorante

    ";
    echo "</tr>";
    }
    echo "</table>";
    }
    else{
    echo "Non é stata inserita ancora nessuna recensione in questa sezione. Se hai piacere essere il primo, clicca nella scelta <a href=\"nrecensione.html\">Nuova Recensione</a>";
    }
    }
    switch($_REQUEST['azione'])
    {
    case "inserisci":
    nrecensione();
    break;
    case "elabora":
    elabora_guest();
    break;
    case "leggi":
    read_guest();
    break;
    }
    ?>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Ragazzi nessuno riesce a darmi una mano per risolvere il problema o darmi qualche indicazione su dove posso istruirmi?
    Grazie mille e buona giornata

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Ragazzi proprio nessuno riesce a darmi una mano?
    buona serata

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Devi verificare lo stato del tag se disable by passi altrimenti blocchi tipo:
    codice:
    if(voto_qualita_cam.value=="" && !voto_qualita_cam.disabled) {.....}
    Ti consiglio di leggere le ottime guide che trovi qui fai errori di sintassi con firefox lo script potrebbe non funzionare, meglio usare il DOM (document.getElement.....)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Grazie mille Andrea ci darò attentamente una letta.
    Con la segnalazione che mi hai fatto tu funziona, nel senso che non viene più fuori a video la scritta di inserire il campo disabilitato come campo obbligatorio.
    Il problema ora sta nel fatto che quando disabilito un campo in javascript, non riesco a farlo passare come campo "vuoto" in php,ovvero, più che non riesco mi appare sempre la scritta notice undefined index. Il record viene comunque scritto in database, ma appare il notice. Non so come fare...
    auguri a tutti

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Ciao ragazzi, rinnovo il post per chi può aiutarmi.
    grazie mille!

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da luseresi
    Grazie mille Andrea ci darò attentamente una letta.
    Con la segnalazione che mi hai fatto tu funziona, nel senso che non viene più fuori a video la scritta di inserire il campo disabilitato come campo obbligatorio.
    Il problema ora sta nel fatto che quando disabilito un campo in javascript, non riesco a farlo passare come campo "vuoto" in php,ovvero, più che non riesco mi appare sempre la scritta notice undefined index. Il record viene comunque scritto in database, ma appare il notice. Non so come fare...
    auguri a tutti
    Premesso che non conosco il php, invece di impostare i campi disabilitati (disabled) impostali solo lettura (readonly) tipo:

    if(tipo_struttura=="3"){
    document.moduloGuest.voto_qualita_cam.readOnly=tru e;
    document.moduloGuest.voto_ristorante.readOnly=true ;
    }
    else{
    document.moduloGuest.voto_qualita_cam.readOnly='';
    document.moduloGuest.voto_ristorante.readOnly='';
    }
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Ciao Andrea, ho provato ma non va, penso che manchi l'istruzione che metto a livello della form, mi spiego meglio:

    nella mia form, attuando l'opzione disabled, avevo messo a livello form l'istruzione onchange="disab(this.options[this.selectedIndex].value)"
    devo scrivere un'altra istruzione se uso " if(tipo_struttura=="3"){
    document.moduloGuest.voto_qualita_cam.readOnly=tru e;
    document.moduloGuest.voto_ristorante.readOnly=true ;
    } " ?

    grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2008
    Messaggi
    149
    Rinnovo la richiesta per chi può aiutarmi.
    grazie e buona giornata

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Come t'hanno già detto le select non supportano il readOnly devi operare diversamente, quanto t'ho consigliato il readOnly non avevo visto che il tag è una select.
    E' vietato aprire diverse discussioni per lo stesso problema.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.