Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Campi select dinamici presi da DB

    Ciao a tutti, devo realizzare un form con due campi select dinamici, ho cercato un po' sul forum e avrei trovato quello che fa per me in questo tread

    Diciamo che sarebbe quello che serve a me, e diciamo pure che sarei riuscito ad adattarlo al mio scopo, si puo' vedere un esempio qui

    Il mio problema e' che a volte potrebbero esserci delle non uguaglianze tra il listino e le sottocategorie, mi spiego meglio, nella pagina di esempio se si scorre sulla prima select fino a prova nell'altra select non compare nulla (la categoria prova non ha sottocategorie...) e questo genera un piccolo errore quando uno preme il tasto MODIFICA (Proprieta' o metodo non supportati dall'oggetto...)



    Come potrei ovviare al problema, magari facendo comparire nell'altro campo select solo il nome della categoria duplicato se la categoria non contiene sottocategorie ?

    Vi posto il codice della pagina prova.php

    Codice PHP:


    <HTML> 
    <HEAD> 
    <script language="javascript"> 
    function objProvincia(codice,nome){ 
    this.codice=codice 
    this.nome=nome 

    function objRegione(nome,province){ 
    this.nome = nome 
    this.province = province 

    var regioni = new Array() 


    <?php 
    $q 
    mysql_query("SELECT * FROM listino WHERE attivo = '0' ORDER BY nome_listino"); 
    while(
    $r mysql_fetch_assoc($q)) { //scandisci il listino 
    print "province = new Array();";
    $q2 mysql_query("SELECT * FROM sottocategorie WHERE categoria = '$r[nome_listino]' AND attivo_sot = '0' ORDER BY nome_sottocategoria"); 
    while(
    $r2 mysql_fetch_assoc($q2)) { //scandisci tutte le sottocategorie
    print "province[province.length]=new objProvincia(\"$r2[id]\",\"$r2[nome_sottocategoria]\");";

    print 
    "regioni[regioni.length]=new objRegione(\"$r[nome_listino]\",province);";

    ?> 


    function creaRegioni(){ 
    oo = document.NomeForm.regione.options 
    for(i=0;i<regioni.length;i++) 
    oo[oo.length]=new Option(regioni[i].nome,regioni[i].nome) 

    function svuotaOption(oo){ 
    for(i=(oo.length-1);i>=0;i--) 
    oo[i]=null 

    function filtraProvince(reg){ 
    oo = document.NomeForm.provincia.options 
    svuotaOption(oo) 
    if(reg=='')oo[oo.length]=new Option('Selezionare la Regione','') 
    else{ 
    for(i=0;i<regioni.length;i++) 
    if(regioni[i].nome==reg){ 
    pro = regioni[i].province 
    for(j=0;j<pro.length;j++) 
    oo[oo.length]=new Option(pro[j].nome,pro[j].codice) 
    i=regioni.length 




    function vai(ff){ 
    pro = ff.provincia.options[ff.provincia.selectedIndex].value 
     

    </script> 
    </HEAD> 
    <BODY onload="creaRegioni()"> 

    <form action="prova11.php" method="post" name="NomeForm">
    <select name="regione" onchange="filtraProvince(this.options[this.selectedIndex].value)"> 
    <option value="">Selezionare...</option> 
    <option value="">---------------</option> 
    </select> 
    <select name="provincia"> 
    <option value="">Selezionare la Regione</option> 
    </select>
    <input type="submit" name="NomeForm" value="Modifica" onclick="vai(this.form)">

    </form> 
    </BODY> 
    </HTML>
    Il fatto e' che mi da proprio fastidio che compaia un errore anche se impercettibile per un istante al clik del bottone.
    Aiutoooo...E grazie 1000 per la pazienza !

    Micky

  2. #2
    Utente di HTML.it L'avatar di Avalox
    Registrato dal
    Nov 2003
    Messaggi
    302
    Forse hai sbagliato forum... si fa bene con javascript!


  3. #3
    Dici....Ora provo ma ho letto di la che se c'e' del php in mezzo al javascript fanno un po' di fatica a comprendere e poi pensavo che visto che la discussione partiva dal forum php, magari i diretti interessati avrebbero potuta leggerla e aiutarmi.

    Cmq faro' come mi consigli e postero' lo stesso topic su scripting sperando di non urtare le ire di nessuno !!

    Ciao e grazie
    Micky

  4. #4
    Capita spesso di scrivere codice js in php, in questo caso possiamo dire che javascript è il "layout" che dobbiamo ricreare in php.
    Se il problema è in js togli il codice php e posta il problema in scripting, trovata la soluzione basta far "scrivere" a php del js corretto.

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.