Poslao: 21 Sep 2010 01:45
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Hteo bih da uradim nesto slicno ovome:
http://www.acer.co.uk/acer/service.do?LanguageISOC.....2980211862
uz pomoc php-a i ajax-a. E sad, ja sam napravio bazu, sa dve tabele, odradio upite koji rade, ali kako da izvedem sve ovo. Evo sta sam ja uradio do sad kodom u php-u:
<?php
$con = mysql_connect("localhost","root","");
if(!$con){
die("Ne moze se konektovati: " .mysql_error());
}
$izbordb = mysql_select_db("mobilnitelefoni", $con);
$rezultat = mysql_query("SELECT naziv_proizvodjaca FROM proizvodjaci") or die(mysql_error());
echo "<select multiple='multiple' size='7' id='proizvodac' onclick='otvoriproizvod(this.value)'>";
while($red = mysql_fetch_array($rezultat)){
$id = $red['proizvodjac_id'];
$nazivpro = $red['naziv_proizvodjaca'];
echo "<option value=$id>" .$nazivpro."</option>";
}
echo "</select>";
$model = mysql_query("SELECT model FROM modeli m JOIN proizvodjaci p ON p.proizvodjac_id = m.proizvodjac1_id
WHERE m.proizvodjac1_id = p.proizvodjac_id AND proizvodjac_id = '".$id."'") or die(mysql_error());
echo "<select multiple='multiple' size='7' id='model'>";
while($red1 = mysql_fetch_assoc($model)){
$nazivmodela = $red1['model'];
$q = $red['proizvodjac_id'];
echo "<option value=$q>".$nazivmodela."</option>";
}
echo "</select>";
echo "<input type='submit' value='izaberi'>";
mysql_close($con);
?>
Mene interesuje, kako da kad kliknem na izlistane podatke iz baze u prvom select boxu, da mi se ucitaju podaci u drugi select box za odgovarajucu stavku koju sam izabrao u prvom select boxu? Evo i koda za skriptu, pa pogledajte da li je ok:
var ajaxrequest;
<script>
function prikazimodel(str)
{
if (str=="")
{
document.getElementById("model").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("model").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","baza.php"+str,true);
xmlhttp.send();
}
</script>
U pitanju je pretraga mobilnih telefona, znaci prvo izaberem proizvodjaca i onda mi u drugom boxu ponudi modele koji se nalaze u bazi i na kraju po izboru modela, otvara stranicu za odgovarajuci model.
Nadam se da sam bio jasan, od skoro sam poceo da se igram sa php-om i zadao sam sebi zadatak da uradim ovako nesto, ali mi slabo ide.
Hvala unapred!!!
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 21 Sep 2010 17:37
|
offline
- MSMarkoN
- Ugledni građanin
- Pridružio: 15 Maj 2006
- Poruke: 333
- Gde živiš: Babušnica
|
Otkucaj jedan div tag kome će id biti "model". Zatim i u događaj onClick napiši "prikazimodel(this.value)" (ili neka vrednost -> id). Pošto se radi o select boxu onda probaj ovako - onChange="prikazimodel(this.value)".
|
|
|
|
Poslao: 21 Sep 2010 19:11
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
A sta mislis o ovom kodu koji je vezan za bazu i upitima?
|
|
|
|
Poslao: 21 Sep 2010 19:25
|
offline
- MSMarkoN
- Ugledni građanin
- Pridružio: 15 Maj 2006
- Poruke: 333
- Gde živiš: Babušnica
|
Nemaš nigde promenljivu koja uzima vrednost preko GET metode pošto si je koristio u JS-u. Ti kroz JS pozivaš baza.php a u tom fajlu moraš da "primiš" vrednost koja je poslata i zatim je iskoristiš za upit.
|
|
|
|
Poslao: 21 Sep 2010 20:44
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
Ja sam pocetnik u svemu ovome, ali moram da uradim neku web aplikaciju, a posto me interesuje PHP, odlucio sam da u njemu napravim. Da li bi mogao da mi pokazes ti kako bi odradio sve ovo, neki tvoj predlog? Naravno, ako imas vremena.
Ubijam se vec nedelju dana oko svega ovoga, nije mi problem da ucitam podatke iz baze u prvi select box, vec mi je problem da na osnovu izabranog proizvodjaca izbaci mi ponudjene modele u novi select box. Meni upit radi, kada mu dam konkretan id proizvodjaca, ali kad hocu da na osnovu izbora proizvodjaca da mi izbaci listu, nikako mi ne ide.
|
|
|
|
Poslao: 21 Sep 2010 21:19
|
offline
- MSMarkoN
- Ugledni građanin
- Pridružio: 15 Maj 2006
- Poruke: 333
- Gde živiš: Babušnica
|
Postoje proizvođac i model. Prva lista ti je za proizvođače, kad to odabereš treba da se izlistaju modeli.
Prvi SELECT tag ima id proizvodac. U tu listu za value postavljaš ID iz baze (proizvodjac_id) a tekst pravo ime (naziv_proizvodjaca).
Za taj select pozivaš funkciju onChange="otvoriProizvod(this.value)".
Sad je caka u funkciji otvoriProizvod
<script type="text/javascript">
function otvoriProizvod(tid)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",'proizvodjac.php?pid='+pid,false);
xmlhttp.send(null);
document.getElementById('MODELI').innerHTML=xmlhttp.responseText;
}
</script>
Iz funkcije pozivaš proizvod.php sa rednim brojem proizvođaca i to se prikaže u novom select tagu koji ima id "MODELI". U proizvodjac.php moraš da dodeliš promenljivoj prosleđeni parametar preko GET metode
$pro_id=$_GET['pid'];
//pa onda ostatak php koda odnosno upit na osnovu $pro_id
Slično je i za model. Sad iz drugog select taga pozivaš funkciju onChange="prikazimodel(this.value)".
<script type="text/javascript">
function prikazimodel(mid)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET",'model.php?mid='+mid,false);
xmlhttp.send(null);
document.getElementById('TELEFON').innerHTML=xmlhttp.responseText;
}
</script>
Onda isto kao i u proizvodjac.php napišeš
$mid = $_GET['mid'];
//pa upit na osnovu rednog broja modela i stampas informacije
Sad u osnovnoj strani staviš jedan div tag gde je id TELEFON i tu bi trebalo da se prikažu informacije (naravno možeš i tabelarno, kako si već zamislio...).
Možeš da ubaciš kasnije i jQuery ali prvo savladaj ovo. I ja sam se dosta patio da skontam kako ide
|
|
|
|
Poslao: 22 Sep 2010 01:16
|
offline
- Pridružio: 16 Jan 2010
- Poruke: 241
- Gde živiš: Zemun
|
E hvala ti puno!!!!! Sad cu ja malo da experimentisem, pa cu valjda nesto napraviti.
|
|
|
|