Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Ce parere aveti de viteza/ modul ...

Love Lies Bleeding - 2024

Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...
 Receptie ciudata, in functie de t...

Donez medicamente renale ptr pisica

Ce componenta e asta si ce ziceti...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 

Selecturi legate intre ele

- - - - -
  • Please log in to reply
7 replies to this topic

#1
- Rares -

- Rares -

    Member

  • Grup: Members
  • Posts: 612
  • Înscris: 04.08.2007
Lucrez de cateva ore la un formular mai complex si m-am lovit de o chestie noua pentru mine.

Imi trebuie 2 selecturi care sa fie legate astfel:
Selectez o valoare din primul select (judete) dupa care in al doilea select sa-mi apara localitatile din judetul selectat in primul select.
Am gasit ceva javascript dar problema este ca valorile pt al doilea select trebuie sa le iau din baza de date. Pentru judete nu ar fi o problema sa le definesc manual.

Ma poate ajuta cineva cu o idee ceva, poate chiar cu o bucatica de script. Marturisesc ca javascript nu prea cunosc.

Va multumesc!

Edited by - Rares -, 14 March 2008 - 22:41.


#2
pitagora

pitagora

    Member

  • Grup: Members
  • Posts: 466
  • Înscris: 11.12.2004

View Post- Rares -, on Mar 14 2008, 22:40, said:

Lucrez de cateva ore la un formular mai complex si m-am lovit de o chestie noua pentru mine.

Imi trebuie 2 selecturi care sa fie legate astfel:
Selectez o valoare din primul select (judete) dupa care in al doilea select sa-mi apara localitatile din judetul selectat in primul select.
Am gasit ceva javascript dar problema este ca valorile pt al doilea select trebuie sa le iau din baza de date. Pentru judete nu ar fi o problema sa le definesc manual.

Ma poate ajuta cineva cu o idee ceva, poate chiar cu o bucatica de script. Marturisesc ca javascript nu prea cunosc.

Va multumesc!

poate ne zici cu iti arata baza de date...
Din ce ai zis ca inteleg ca vrei sa listezi toate localitatile dintr-un anumit judet nu? Nu prea ai nevoie de 2 selecturi. Faci unul cu cuplare:

Sa zicem ca ai cele 2 tabele:

Judete
id_judet : int, PK
nume: varchar

Localitati
id_localitate : int, PK
id_judet: int, FK din Judete
nume: varchar

atunci daca vrei sa aflii toate localitatile din judetul cluj faci:

select Localitati.nume from Localitati, Judete where Localitati.id_judet=Judete.id_judet and Judete.nume='Cluj'

in momenul in care cineva a selectat un Judet trebuie sa folosesti ajax pentru a incarca lista localitatilor in drop down box. E o chestiune clasica...exemplul dat cel mai des intr-un tutorial de ajax:
http://roshanbh.com....ax-and-php.html

#3
- Rares -

- Rares -

    Member

  • Grup: Members
  • Posts: 612
  • Înscris: 04.08.2007
pitagora, multuesc pentru raspuns. Nu am pomenit nimic despre baza de date pt ca asta nu ar fi fost o probema. Stiu binisor php si mysql.
Problema e partea de javascript/ajax.

Am 2 tabele in baza de date:
Judete
id_judet : int, PK
nume: varchar

Localitati
id_localitate : int, PK
id_judet: int, FK din Judete
nume: varchar

Am nevoie de 2 selecturi petru ca nu vreau sa mi se selecteze toate localitatile dintr-un judet. In momentul in care selectez un judet, vreau ca din al doilea select sa pot selecta 1 localitate care apartine acelui judet. Deci al doilea select sa se reactualizeze cu localitatile din judelul primului select.

E interesant si cazul postat de tine, dar nu pt aceasta problema.

#4
again

again

    WEB DUDE

  • Grup: Senior Members
  • Posts: 7,068
  • Înscris: 21.10.2005
folosesti o librarie javascript (jquery , prototype , mootools)
fiecare librarie are si o documentatie pt partea cu ajax (cum ar trebuii sa arate o functie)
pe primul select pui onchange=functia_ta_ajax(this.value)
iar functia_ta_ajax() va trimite acel this.value (valoarea primul select) catre un fisier .php , acolo in php faci select where id_judet=$id_judet (acel this.value transferat in php) si iti va rezulta selectul 2
acel rezultat ajax (adica selectul 2) il poti introduce in site fara refresh in timp real cu innerHTML (toate exemplele de functii ajax din librariile astea folosesc innerHTML pt afisarea rezultatului deci nu e mare lucru)

era un site al unui tip cu exact ce vrei tu sa faci (judet , localitati) dar vad ca nu mai e, eu de acolo m-am inspirat pentru prima oara , pana am invatat ajax sa-mi pot face ce doresc)

#5
- Rares -

- Rares -

    Member

  • Grup: Members
  • Posts: 612
  • Înscris: 04.08.2007
again, iti multumesc pe ajutor.

Totusi nu am reusit mare lucru. (o sa invat javascript/ajax dar momentan nu-mi permite timpul)

Mi-am batut capul cu asa ceva http://www.dynamicdr...dmenu/index.htm dar e cu 3 selecturi si este mult prea stufos.
Valorile si le ia dintr-un al treilea fisier .js unde sunt setate.

Dupa indelungi cautari am gasit ceva mai simplu si usor de modificat.
Sper ca acum sa reusesc.

Pentru cei interesati:

http://www.dhtmlgood..._chained_select
sau
http://forums.devart...help-32371.html

Edited by - Rares -, 17 March 2008 - 13:00.


#6
MembruAnonim

MembruAnonim

    MembruAnonim

  • Grup: Banned
  • Posts: 398,284
  • Înscris: 08.10.2015
http://remysharp.com...ng-jquery-ajax/

#7
Alin93

Alin93

    Junior Member

  • Grup: Members
  • Posts: 200
  • Înscris: 10.11.2006
Ai doua tabele:
CREATE TABLE judete(
judet_id int not null primary key auto_increment,
judet_nume varchar(30)
);

CREATE TABLE localitati(
localitate_id int not null primary key auto_increment,
judet_id int not nullm
localitate_nume varchar(40)
);
Ai un fisier localitati.php:
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
if(!$_GET['judet_id'])
{
  echo 'A intervenit o eroare';
  exit;
}
mysql_connect('localhost', 'root', '');
mysql_select_db('baza-de-date');
$sql='SELECT localitate_nume, localitate_id FROM localitati WHERE judet_id='.$_GET["judet_id"];
$rezultat=mysql_query($sql);
if(mysql_num_rows($rezultat)<1)
{
  echo 'Nu exista valori pentru judetul numarul '.$_GET["judet_id"];
  exit;
}
while($camp=mysql_fetch_array($rezultat))
{
  echo $camp['localitate_id'].",".$camp['localitate_nume'].";";
}
exit;
?>
Si ai fisierul select.php:
<html>
  <head>
	<script language="javascript">
function getXmlHttpObject()
{
  var xmlHttp=null;
  try
  {
	xmlHttp=new XmlHttpRequest();
  catch (e)
  {
	try
	{
	  xmlHttp=new ActiveXObject('Msxml2.XMLHTTP');
	}
	catch (e)
	{
	  xmlHttp=new ActiveXObject('Microsoft.XMLHTTP');
	}
  }
  return xmlHttp;
}
function localitati(judetId)
{
  var xmlHttp=getXmlHttpObject();
  if(xmlHttp==null)
  {
	alert('Browserul tau nu suporta AJAX');
	return;
  }
  var url='localitati.php?judet_id='+judetId;
  localitati=new Array();
  randuri=new Array();
  xmlHttp.open('GET', url, true);
  xmlHttp.onreadystatechange=function() { document.getElementById('localitate').innerHTML=''; randuri=split(';', xmlHttp.responseText); for(i=0;i<i.length;i++) { localitati[i]=split(',', randuri[i]); for(i=0;i<i.length;i++) { document.getElementById('localitate').innerHTML=document.getElementById('localitate').innerHTML+'<option value="'+localitati[i][0]+'">'+localitati[i][1]+'</option>'; }
  xmlHttp.send(null);
}
	</script>
  </head>
  <body>
	<select name="judet" id="judet" onchange="localitati(this.value)">
	  <?php
mysql_connect('localhost', 'root', '');
mysql_select_db('baza-de-date');
$sql='SELECT * FROM judete';
$rezultat=mysql_query($sql);
if(mysql_num_rows($rezultat)<1)
{
  echo '<option>Nu au fost gasite judete</option>';
  exit;
}
while($judet=mysql_fetch_array($rezultat))
{
  echo '<option value="'.$judet["judet_id"].'">'.$judet["judet_nume"].'</option>';
}
	  ?>
	</select>
	<br>
	<select name="localitate" id="localitate">
	  <option>Selecteaza mai intai judetul</option>
	</select>
  </body>
</html>

Nu stiu daca merge, pentru ca nu l-am testat, poate am greseli gramaticale prin el, ca l-am facut la repezeala :D

#8
Alin93

Alin93

    Junior Member

  • Grup: Members
  • Posts: 200
  • Înscris: 10.11.2006
In fine, pentru ca nu pot sa-i dau edit postez iar.
Functia XmlHttpRequest() se scrie XMLHttpRequest(), deci va rog sa corectati in scriptul vostru

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate