Šta je novo?

HTML <option> i MYSQL

kUdtiHaEX

Super ridža
Administrator
Učlanjen(a)
18.07.2001
Poruke
18,290
Poena
1,445
Moja oprema  
CPU & Cooler
Intel® Core™ i5-9500F, NZXT Kraken Z63
GPU
Asus GTX 2070 Super
Storage
Samsung 980 Pro NVMe 1 TB
Kućište
NZXT H210i
Monitor
LG C2 42"
Miš & tastatura
Logitech G502, Keychron K8, Nuphy Air75, Ducky TKL One 2
Ostale periferije
Glupi HP štampač
Laptop
Apple Macbook Pro 14" M1
Tablet
Apple iPad Pro 11"
Mobilni telefon
Apple iPhone 13 Pro Max
Pametni uređaji
Apple Watch Ultra
Pristup internetu
  1. Kablovski internet
Kako da povezem <select> i MYSQL? Hocu da mi combo-box vuce podatke direktno iz baze.

Ja sam pokusao to da uradim ovako:

Kod:
<?php
 $dbhost = 'localhost';
 $dbname = 'telefoni';
 $dbuser = 'root';
 $dbpass = '';

$db =  mysql_connect("$dbhost", "$dbuser", "$dbpass");
 mysql_select_db("$dbname", $db);
 if (!$db) 
	{
	  echo 'Error: Could not connect to MYSQL database.';
	  exit;
	}
?>

<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  
  <p>proizvodjac : 
    <select name="proizvodjac">
<?php
  	$result = mysql_query(select * from proizvodjac);
		 	echo "<select name=\"select\">\n";
//	while($zeile = mysql_fetch_array($query))
	while ($row = mysql_fetch_assoc($result)){
	echo "<option value = ' . $row["id"] . '>' . $row["naziv"] . '</option>";
?>
</SELECT>
</p>
  <p> </p>
</form>

</body>
</html>

ali to ne radi. Dobijem combobox ali u njemu pise ' . $row["naziv"] . ' 🙁

Gde gresim i da li postoji neki bolji nacin da se to uradi?
 
Resio sam problem. Ispravan kod glasi:

Kod:
<?php
 $dbhost = 'localhost';
 $dbname = 'telefoni';
 $dbuser = 'root';
 $dbpass = '';

$db =  mysql_connect("$dbhost", "$dbuser", "$dbpass");
 mysql_select_db("$dbname", $db);
 if (!$db) 
	{
	  echo 'Error: Could not connect to MYSQL database.';
	  exit;
	}

  	$result = mysql_query("select * from proizvodjac order by id");
  	echo $result;
  	
    echo '<select name="nesto">';
  	while ($row = mysql_fetch_assoc($result)){
  	echo '<option value='.$row["id"].'>'.$row["naziv"].'</option>';
 }
	echo '</select>';
  	
?>

E sad, jos jedno pitanje - ako postoji drugi combo box, kako da izvrsim automatsku promenu vrednosti u drugom u odnosu na vrednosti prvog. Recimo, ako je u u 1. izabrana opcija Nokia onda da drugi combo pokaze samo modele Nokia-e.
 
Poslednja izmena:
Logično je samo preko Java script-a, ne?
Pogledaj kako se js konektuje na bazu i tako to.

edit:

A ima još jedna cakica koju sam video da ljudi dosta upražnjavaju.
Imaš jedan list box, combobox, kako god u kome se nalaze proizvođači mobilnih telefona.
Pomoću Java scripta odradiš da kada se izvrši promena vrednosti, tj. kad neko odabere Nokia ili Siemens ili ... da se refresh-uje cela stranica. Ali kako? Recimo da post metodom zapamtiš vrednost u prvom combo box-u, pa da na osnovu te vrednosti prosleđuješ nov upit bazi i da na osnovu njega puniš drugi combo box, a ako nije setovana vrednost prvog combo box-a, onda radiš samo prvi upit da izlistaš sve proizvođače telefona, a lista sa modelima bi trebala da bude prazna.
A možeš to isto i da radiš sa get metodom, ali meni je to malko ružno.
Npr. www.tvojsajt.com/pogledaj.php?model=nokia
 
Poslednja izmena:
Ja sam koristio JavaScript i ASP (nebitno, isto princip kao PHP) za sličnu situaciju (konfigurator vozila).

Na kraju mi je kao najjednostavnije rešenje došlo sledeće:

Nizovi u JavaScriptu

Dakle, pošto se ne radi o nekoj velikoj količini podataka, odmah na početku preko PHP-a učitaš sve potrebne podatke (u tvom slučaju proizvođač, naziv modela) i to preko ECHO upišeš kao JavaScript kod koji predstavlja stavke nekog niza -
niz["nokia"] = new Array();
niz["nokia"][0] = "3340";
niz["nokia"][1] = "3510";

Ali sve ovo kreiraš dinamički sa ECHO (nadam se da shvataš šta hoću da ti kažem).

Dalje sve funkcioniše putem JavaScripta koji se poziva na onChange SELECTkontrole, popunjava drugu SELECT kontrolu itd...

Jedino što ti za ovu akciju treba malo (mnogo) više zezanja sa JavaScriptom i više strpljenja, ali nema potrebe za ponovnim učitavanjem stranice i slično.


Ako hoćeš sa ponovnim učitavanjem stranice - ništa lakše. Napiši JavaScript koji na onChange SELECTa vrši redirekciju na www.kutija.com/search.php?model=nazivModela, gde se nazivModela povlači iz VALUE taga OPTIONa, pa onda obradi $_GET...

Poz.
 
Zanimljive ideje, ja sam to resio ovako:

Kod:
<?php

$dbhost = 'localhost';
$dbname = 'telefoni';
$dbuser = 'root';
$dbpass = '';

$db =  mysql_connect("$dbhost", "$dbuser", "$dbpass");
mysql_select_db("$dbname", $db);

if (!$db) 
{
	echo 'Error: Could not connect to MYSQL database.';
	exit;
}

$result = mysql_query("select * from proizvodjac order by id");

echo '<form name="telefoni" id="telefoni" method="post" action="process.php">';

?>
<select name="make" id="make" onchange="document.getElementById('telefoni').action='q2.php';document.getElementById('telefoni').submit();">

<?php
echo '<option selected></option>';
while ($row = mysql_fetch_assoc($result))
{
	echo '<option value='.$row["id"].'>'.$row["naziv"].'</option>';
}

echo '</select>';

if (isset ($_POST['make']) && (strlen ($_POST['make']) > 0))
{
	$make = $_POST['make'];
	$mresult = mysql_query("select * from modeli where id_proizvodjac = $make");

	echo '<select name="model" id="model">';

	while ($row = mysql_fetch_assoc($mresult))
	{
		echo '<option value='.$row["id_model"].'>'.$row["tip_modela"].'</option>';
	}

	echo '</select>';
}
else
{
	echo '<select name="model" id="model">';
	echo '</select>';
}

echo '<input type="submit" name="submit" value="Posalji" />';
echo '</form>';

?>
 
Najbolje ti je preko js da odradis dinamicko popunjavanje drugog comboa html koji se generise je malo veci ali nije strasno, a mnogo je brze nego ponovno ucitavanje cele strane.
 
Nazad
Vrh Dno