Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Vand Proiect AI cu ChatGPT 4(Gene...

E-Mail in serie prin Excel si Out...

Modul alimentare rulou/jaluzea ex...

Recuperare fișiere dupa form...
 Aplicatii stress test RAM

Asigurare auto hibrid

Asus B550M - PC-ul nu porneste di...

Tzanca Uraganu - Inconjurat de Fe...
 explicatie montaj breadboard

3 Doors Down - Kryptonite

Semnalizati cand virati pe un dru...

Succesiune - mostenire apartament...
 Donez Siofor de 1000mg ( diabet t...

Izolatie intre parter si etaj

Hranirea pasarilor din orase -pro...

[unde] goarna tramvai
 

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,226
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

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