[ Marko126 @ 25.07.2009. 21:38 ] @
Pozdrav ljudi!
Treba mi pomoc oko povezivanja vrednosti iz dve padajuce liste. Postoji baza u mySQL-u sa dve tabele iz kojih se generisu vrednosti u dve padajuce liste. Prvo se generisu podaci iz jedne tabele u prvu padajucu listu i kada se izabere vrednost, na osnovu nje generisu se podaci iz druge tabele u drugu padajucu listu. Ne mogu nikako da izvedem ovaj drugi deo, tj. druga padajuca lista mi je prazna.

Evo koda:

<html>
<head>
<title>Unos firme</title>
</head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<body>
<h1 align="center"><font size="7"><strong>Unos firme</strong></font></h1>
<blockquote>
<hr>
<?php

// Definisemo niz obl[] u koji smestamo nazive oblasti koje cemo kasnije koristiti
// u padajucem meniju

include "dbspoj.php";
$oblast="SELECT*FROM oblast_rada";
if ($o=mysql_query($oblast))
{
while ($red2=mysql_fetch_array($o))
{
$obl[]=$red2["naziv"];
}
}
/* Definisemo niz del[] u koji smestamo nazive delatnosti koje cemo kasnije koristiti
u padajucem meniju

$delat="SELECT*FROM delatnost WHERE ID";
if ($q=mysql_query($delat))
{
while ($red=mysql_fetch_array($q))
{
$del[]=$red["naziv"];
}
}

*/

// Definisemo niz gr[] u koji smestamo nazive gradova koje cemo kasnije koristiti
// u padajucem meniju
$gra="SELECT*FROM grad";
if ($n=mysql_query($gra))
{
while ($red1=mysql_fetch_array($n))
{
$gr[]=$red1["naziv"];
}
}
if (!$_POST["SBunos"])
{
?>
</blockquote>
<form method="post" action="">
<table width="45%" height="370" border="0">
<tr>
<td width="35%"><strong>Naziv firme: </strong></td>
<td width="65%"><input type="text" name="naziv2"></td>
</tr>
<tr>
<td><strong>Adresa firme:</strong></td>
<td><input type="text" name="adresa2"></td>
</tr>
<tr>
<td><strong>Telefon firme:</strong></td>
<td><input type="text" name="telefon2"></td>
</tr>
<tr>
<td><strong>Fax firme: </strong></td>
<td><input type="text" name="faks2"></td>
</tr>
<tr>
<td><strong>URL firme:</strong></td>
<td><input type="text" name="url2"></td>
</tr>
<tr>
<td><strong>E-mail firme:</strong></td>
<td><input type="text" name="e-mail2"></td>
</tr>
<tr>
<td><strong>Izaberi grad:</strong></td>
<td><select name="grad">
<?php
foreach ($gr as $g){
echo '<option';
echo ">$g</option>";
}
?>

</select></td>
</tr>
<tr>
<td><strong>Izaberi oblast rada:</strong></td>

<td><select name="oblast" onchange="javascript:document.forma.submit();">
<?php
foreach ($obl as $ob){
echo '<option';
echo ">$ob</option>";
}
?>
</select></td>
</tr>
<tr>
<td><strong>Izaberi delatnost:</strong></td>
<td><select name="delatnost">
<option> ---izaberi delatnost---</option>
<?php

$obl_id="SELECT ID_oblast FROM oblast_rada WHERE naziv = '$_POST[oblast]'";
if ($a1=mysql_query($obl_id))
{
while ($red3=mysql_fetch_array($a1))
{
$obl1[]=$red3[0];
}
}else{
echo "Nastala je greska pri odabiru delatnosti";
}

$del_ime="SELECT naziv FROM delatnost WHERE ID_oblast = '$obl1[0]'";
if ($a=mysql_query($del_ime))
{
while ($red=mysql_fetch_array($a))
{
$del[]=$red[0];
}
foreach ($del as $d){
echo '<option';
echo ">$d</option>";
}
}else{
echo "Nastala je greska pri odabiru delatnosti";
}
?>
</select></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="SBunos2" value="Unesi"></td>
</tr>
</table>
<?php
} else {
include "dbspoj.php";
$gr_id="SELECT ID_grad FROM grad WHERE naziv = '$_POST[grad]'";
$del_id="SELECT ID_del FROM delatnost WHERE naziv = '$_POST[delatnost]'";
if ($a=mysql_query($gr_id) and $d=mysql_query($del_id))
{
$redak=mysql_fetch_row($a);
$redak1=mysql_fetch_row($d);

$sql="INSERT INTO firma (naziv ,adresa, telefon, faks, url, e_mail, ID_del, ID_grad)
VALUES ('$_POST[naziv]','$_POST[adresa]','$_POST[telefon]', '$_POST[faks]', '$_POST[url]', '$_POST[e_mail]','$redak1[0]', '$redak[0]')";
if (mysql_query($sql))
{
echo "Firma je uspe¹no une¹ena";
?>
<hr>
<a href="file:///C|/wamp/www/portal/unos-firme.php">Unesi drugu firmu</a> </hr>
<?php
} else {
echo "Nastala je greska pri unosu firme<br>" . mysql_error();
}
}else{
echo "Nastala je gre¹ka pri unosu firme<br>" . mysql_error();
}
}
?>
</blockquote>
</body>
</html>

[ Milos911 @ 26.07.2009. 07:47 ] @
Mrzi me da gledam taj kod ali ionako tu nema mnogo mudrovanja. Ako hoces sa refresh namestis da ti automatski kad korisnik izabere neku vrednost strana opet ucita ali sad sa strana.php?id=x. Posle u drugom kveriju iskoristis taj id da nadjes sta ti treba. Drugi nacin je da namestis da ti js pozove php kod koji radi taj isti kveri posle biranja vrednosti prve padajuce liste. Drugi nacin je mnogo lepsi :)
[ Marko126 @ 26.07.2009. 10:09 ] @
Sve je to lepo, ali kako da namestim da mi JS poziva php upit?
[ Nemanja Avramović @ 26.07.2009. 10:42 ] @
Ajax?
[ vatri @ 26.07.2009. 10:43 ] @
Ajax:

http://www.w3schools.com/Ajax/Default.Asp

A mozda preko jQuery (isto Ajax):

http://jquery.com
http://docs.jquery.com/Ajax
[ beep @ 26.07.2009. 10:51 ] @
Potrebno je sa php izgenerisati niz sel_2 koji ce biti povezan sa vrednostima iz select 1

Code:

<select id="select_1" onChange="select_2()">
<option value="value_1">Option 1</option>
<option value="value_2">Option 2</option>
<option value="value_3">Option 3</option>
</select>
<select id="select_2" ></select>


<script type="text/javascript">

function select_2()
    {
    var sel1 = document.getElementById('select_1');
    var sel2 = document.getElementById('select_2');
    var sel_2 =new Array();
    sel_2['value_1']=['OPTION 1','value','OPTION 1_1','value','OPTION 1_2','value'];
    sel_2['value_2']=['OPTION 2','value','OPTION 2_1','value','OPTION 2_2','value'];
    sel_2['value_3']=['OPTION 3','value','OPTION 3_1','value','OPTION 3_2','value'];
    sel2.options.length = 0;
    for    (var i=0;i<sel_2[sel1.value].length;i +=2)
    {sel2.options[i/2]=new Option(sel_2[sel1.value][i],sel_2[sel1.value][i+1],false);}

    }
    select_2();
</script>
[ Nikola Poša @ 26.07.2009. 12:58 ] @
Pretraži malo ovaj, a i JavaScript i AJAX forum, bilo je već sličnih tema, a i sećam se da sam na nekoj baš napisao primer za to što tebi treba...