Eredmény: 1 - 6 (6) összesen

Téma: Többszintű select

  1. #1
    Új tag
    Csatlakozott
    12-01-25
    Hozzászólás
    37
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás Többszintű select

    Sziasztok!

    Tudnátok abban segíteni, hogy egy + selectel (Iskolák) bővítsem az alábbi kódot?

    Az adatbázis táblái:
    - Országok tábla: OrszagID, Orszagnev
    Megyek tábla: MegyeID, OrszagID, Megyenev
    Varosok tábla: VarosID, MegyeID, Varosnev
    Iskolak tábla: IskolaID, VarosID, Iskolanev

    Az alapbővítést megcsináltam:
    HTML kód:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
    <title>Választás</title>
    <script>
    function orszagbeall(x)
    	{
    	db=document.getElementById('orszag').options.length
    	for(i=0;i<db;i++)
    	    {
    		if (x==document.getElementById('orszag').options[i].value)
    			{
    			document.getElementById('orszag').selectedIndex=i;
    			orszag_csere(i)
    			break;
    			}
    		}
    	}
    function megyebeall(x)
    	{
    	db=document.getElementById('megye').options.length
    	for(i=0;i<db;i++)
    	    {
    		if (x==document.getElementById('megye').options[i].value)
    			{
    			document.getElementById('megye').selectedIndex=i;
    			megye_csere(i)
    			break;
    			}
    		}
    	}
    
    function varosbeall(x)
    	{
    	db=document.getElementById('varos').options.length
    	for(i=0;i<db;i++)
    	    {
    		if (x==document.getElementById('varos').options[i].value)
    			{
    			document.getElementById('varos').selectedIndex=i;
    			varos_csere(i)
                            break;
    			}
    		}
    	}
    
    function iskolabeall(x)
    	{
    	db=document.getElementById('iskola').options.length
    	for(i=0;i<db;i++)
    	    {
    		if (x==document.getElementById('iskola').options[i].value)
    			{
    			document.getElementById('iskola').selectedIndex=i;
    			break;
    			}
    		}
    	}
    
    
    function orszag_csere(mire)
    {
    mire--
    v=mire
    // Régi megye kitörlés
    db=document.getElementById('megye').options.length
    for(i=0;i<db;i++)
        {
        document.getElementById('megye').options[0]=null
        }
    // Régi város kitörlés
    db=document.getElementById('varos').options.length
    for(i=0;i<db;i++)
        {
        document.getElementById('varos').options[0]=null
        }
    if (mire>=0)
        {
    	newOptionName = new Option("--- Kérem válasszon ---", 0);
    	document.getElementById('megye').options[0] = newOptionName;
    	t=tomb[mire]
    	for(i=2;i<t.length;i++)
    	   {
    		newOptionName = new Option(t[i][1], t[i][0]);
    		document.getElementById('megye').options[i-1] = newOptionName;
    	   }
    	}
    }
    
    function megye_csere(mire)
    {
    mire--
    // Régi megye kitörlés
    db=document.getElementById('varos').options.length
    for(i=0;i<db;i++)
        {
        document.getElementById('varos').options[0]=null
        }
    if (mire>=0)
       {
    	newOptionName = new Option("--- Kérem válasszon ---", 0);
    	document.getElementById('varos').options[0] = newOptionName;
    	t=tomb[v][mire+2]
    	for(i=2;i<t.length;i++)
    	   {
    		newOptionName = new Option(t[i][1], t[i][0]);
    		document.getElementById('varos').options[i-1] = newOptionName;
    	   }
    	}
    }
    </script>
    </head>
    <body
    <?
    $onload="";
    if (isset($_GET['orszag']))
    	{
    	$onload.="orszagbeall(".intval($_GET['orszag']).");";
    	if (isset($_GET['megye']))
    		{
    		$onload.="megyebeall(".intval($_GET['megye']).");";
    		if (isset($_GET['varos']))
    			$onload.="varosbeall(".$_GET['varos'].");";
    		}
    	echo ' onload="' .$onload.'" ';
    	}
    ?>	
    >
    <b>JS lista</b><br>
    <form>
    <table border="0" >
    	<tr>
    		<td>Ország:</td>
    		<td> 
    <select name="orszag" id="orszag" size="1" onchange="orszag_csere(this.selectedIndex)" style="width:200px"></select></td>
    	</tr>
    	<tr>
    		<td>Megye:</td>
    		<td> <select name="megye" id="megye" size="1" onchange="megye_csere(this.selectedIndex)" style="width:200px"></select></td>
    	</tr>
    	<tr>
    		<td>Város:</td>
    		<td> <select name="varos" id="varos" size="1" style="width:200px"></select></td>
    	</tr>
            <tr>
    		<td>Iskola:</td>
    		<td> <select name="iskola" id="iskola" size="1" style="width:200px"></select></td>
    	</tr>
    </table>
    <input type="submit" name="teszt" value="mehet">
    </form>
    <script>
    <?
    
    include('../init.php');
    			
    mysql_query('set names cp1250'); 
    $sql="select Orszagok.OrszagID, Orszagok.Orszagnev, Megyek.MegyeID,
    		Megyek.MegyeNev, Varosok.VarosID, Varosok.VarosNev 
    		FROM Orszagok Inner Join Megyek on Orszagok.OrszagID=Megyek.OrszagID
    		Inner Join Varosok on Megyek.MegyeID = Varosok.MegyeID 
    		order by Orszagok.Orszagnev,Megyek.MegyeNev,Varosok.VarosNev";
    $parancs = mysql_query($sql);
    $Orszag_ID=0;
    $Megye_ID=0;
    $ki_orszag="";
    $ki_megye="";
    $ki_varos="";
    $ki_iskola="";
    $ki="tomb=new Array(\n";
    while ($sor = mysql_fetch_array($parancs))
    	{
    	if ($sor['OrszagID']!=$Orszag_ID)
    		{
    		$ki.=$ki_orszag . "\t new Array(". $sor['OrszagID'].",'".$sor['Orszagnev']."',\n";
    		$Orszag_ID=$sor['OrszagID'];
    		$ki_orszag="\t\t)\t),\n";
    		$ki_megye="";
    		$ki_varos="";
    		};
    	if ($Megye_ID!=$sor['MegyeID'])
    		{
    		$ki.=$ki_megye . "\t\t new Array(". $sor['MegyeID'].",'".$sor['MegyeNev']."',\n";
    		$Megye_ID=$sor['MegyeID'];
    		$ki_megye="\t\t),\n";
    		$ki_varos="";
    		};
    	$ki.=$ki_varos . "\t\t\t new Array(". $sor['VarosID'].",'".$sor['VarosNev']."')\n";
    	$ki_varos=",";
    	};
    $ki.="\t\t\t)\n\t\t)\n\t)\n";
    echo $ki;
    mysql_free_result($parancs)
    
    ?>
    
    newOptionName = new Option("--- Kérem válasszon ---", 0);
    document.getElementById('orszag').options[0] = newOptionName;
    for(i=0;i<tomb.length;i++)
       {
    	newOptionName = new Option(tomb[i][1], tomb[i][0]);
    	document.getElementById('orszag').options[i+1] = newOptionName;
       }
    
    v=0
    </script>
    </p>
    </body>
    
    </html>




  2. #2
    Bölcs
    Csatlakozott
    12-08-31
    Hozzászólás
    1.032
    Begyűjtött 351 köszönetet
    239 hozzászólásával

    Alapbeállítás re: Többszintű select

    az onloaddal elindítod mondjuk a függvényt:

    <?
    $onload="";
    if (isset($_GET['orszag']))
    {
    $onload.="orszagbeall(".intval($_GET['orszag']).");";
    if (isset($_GET['megye']))
    {
    $onload.="megyebeall(".intval($_GET['megye']).");";
    if (isset($_GET['varos']))
    $onload.="varosbeall(".$_GET['varos'].");";
    }
    echo ' onload="' .$onload.'" ';
    }
    ?>


    if (isset($_GET['varos']))
    $onload.="iskolabeall(".$_GET['iskola'].");";
    }



  3. #3
    Új tag
    Csatlakozott
    12-01-25
    Hozzászólás
    37
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Többszintű select

    Így próbáltam, még nem működik: Jó így?

    <?
    $onload="";
    if (isset($_GET['orszag']))
    {
    $onload.="orszagbeall(".intval($_GET['orszag']).");";
    if (isset($_GET['megye']))
    {
    $onload.="megyebeall(".intval($_GET['megye']).");";
    if (isset($_GET['varos']))
    $onload.="varosbeall(".$_GET['varos'].");";
    if (isset($_GET['varos']))
    $onload.="iskolabeall(".$_GET['iskola'].");";
    }
    echo ' onload="' .$onload.'" ';
    }
    ?>

    Ezt a részt hogy írjam át?
    HTML kód:
    mysql_query('set names cp1250'); 
    $sql="select Orszagok.OrszagID, Orszagok.Orszagnev, Megyek.MegyeID,
    		Megyek.MegyeNev, Varosok.VarosID, Varosok.VarosNev 
    		FROM Orszagok Inner Join Megyek on Orszagok.OrszagID=Megyek.OrszagID
    		Inner Join Varosok on Megyek.MegyeID = Varosok.MegyeID 
    		order by Orszagok.Orszagnev,Megyek.MegyeNev,Varosok.VarosNev";
    $parancs = mysql_query($sql);
    $Orszag_ID=0;
    $Megye_ID=0;
    $ki_orszag="";
    $ki_megye="";
    $ki_varos="";
    $ki_iskola="";
    $ki="tomb=new Array(\n";
    while ($sor = mysql_fetch_array($parancs))
    	{
    	if ($sor['OrszagID']!=$Orszag_ID)
    		{
    		$ki.=$ki_orszag . "\t new Array(". $sor['OrszagID'].",'".$sor['Orszagnev']."',\n";
    		$Orszag_ID=$sor['OrszagID'];
    		$ki_orszag="\t\t)\t),\n";
    		$ki_megye="";
    		$ki_varos="";
    		};
    	if ($Megye_ID!=$sor['MegyeID'])
    		{
    		$ki.=$ki_megye . "\t\t new Array(". $sor['MegyeID'].",'".$sor['MegyeNev']."',\n";
    		$Megye_ID=$sor['MegyeID'];
    		$ki_megye="\t\t),\n";
    		$ki_varos="";
    		};
    	$ki.=$ki_varos . "\t\t\t new Array(". $sor['VarosID'].",'".$sor['VarosNev']."')\n";
    	$ki_varos=",";
    	};
    $ki.="\t\t\t)\n\t\t)\n\t)\n";
    echo $ki;
    mysql_free_result($parancs)
    
    ?>
    
    newOptionName = new Option("--- Kérem válasszon ---", 0);
    document.getElementById('orszag').options[0] = newOptionName;
    for(i=0;i<tomb.length;i++)
       {
    	newOptionName = new Option(tomb[i][1], tomb[i][0]);
    	document.getElementById('orszag').options[i+1] = newOptionName;
       }
    
    v=0
    </script>




  4. #4
    Bölcs
    Csatlakozott
    12-08-31
    Hozzászólás
    1.032
    Begyűjtött 351 köszönetet
    239 hozzászólásával

    Alapbeállítás re: Többszintű select

    if (isset($_GET['varos']))
    $onload.="iskolabeall(".$_GET['iskola'].");";
    }

    helyett miért nem ez?:

    if (isset($_GET['iskola']))
    $onload.="iskolabeall(".$_GET['iskola'].");";
    }

    A többi kódot nem néztem még át. Gyanítom az sql utasítást is rendbe kell rakni. De komplett megoldáshoz szerintem kérj ajánlatot.



  5. #5
    'Say Hello To My Little Friend'
    Csatlakozott
    10-04-13
    Hely
    Budapest
    Hozzászólás
    2.784
    Begyűjtött 863 köszönetet
    659 hozzászólásával

    Alapbeállítás re: Többszintű select

    A mai világban már legtöbbször nem kell saját kódírással szenvedni, ha nem értesz hozzá. Elég rákeresni, pl.: https://www.google.hu/search?q=multiple+level+select - számtalan plugin és megoldás van a témában, amik kb. kulcsrakészen adnak Neked mindent.



  6. #6
    Új tag
    Csatlakozott
    12-01-25
    Hozzászólás
    37
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Többszintű select

    Valóban, köszi, javítottam.
    PHP kód:
    <?
    $onload
    ="";
    if (isset(
    $_GET['orszag']))
    {
    $onload.="orszagbeall(".intval($_GET['orszag']).");";
    if (isset(
    $_GET['megye']))
    {
    $onload.="megyebeall(".intval($_GET['megye']).");";
    if (isset(
    $_GET['varos']))
    $onload.="varosbeall(".$_GET['varos'].");";
    if (isset(
    $_GET['iskola']))
    $onload.="iskolabeall(".$_GET['iskola'].");";
    }
    echo 
    ' onload="' .$onload.'" ';
    }
    ?>
    A többi pár soros kiegészítésben tudnátok még segíteni?



Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •