Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 

Cautare in json dupa o valoare text din <input>

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

#1
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Intr-o pagina html, am  un camp dupa care as vrea sa pot cauta si afisa date intr-un json (in caz ca exista date care se potrivesc).

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/index.css"/>
<link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico">
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="js/search.js"></script>
</head>
<body>
  <div id="search">
   <input type="search" placeholder="Search">
   <input type="button" id="search" name="search" value="Search1" onclick="search();">
  </div>

<script> 
var test = {
  "restos": [{
	"Resto1": [{
	  "name": "nume1",
	  "address": "strada 1",
	  "tel": "0211",
	  "email": "email1@email",
	  "web": "www1",
	  "pic": "img/rest.jpg"
	}],
	"Resto2": [{
	  "name": "nume2",
	  "address": "bd2",
	  "tel": "0722",
	  "email": "email2@",
	  "web": "www2",
	  "pic": "img/rest.jpg"
	}]
  }]
}

$( function() {
	  var items = [];
	 
	  function test1(json) {
		 
		$.each(json.restos, function(index, orders) {
		  $.each(this, function() {
			$.each(this, function() {
			  items.push('<div class="nume">' + this.name + '</div>' + "\n");
			});
		  });
		});

		$('<div>', {
		  "class": 'resto',
		  html: items.join('')
		}).appendTo("body");	  
	  };
	 
	  test1(test);
});
 
   $(function () {
		var items = [];							   
		function test1(json) {		 
			 $.each(json.restos, function (index, orders) {
				  $.each(this, function () {
					   $.each(this, function () {
							items.push('<div class="nume">' + this.name + '</div>' + "\n");
					   });
				  });
			 });
		$('<div>', {
			 "class": 'resto',
			 html: items.join('')
		}).appendTo("body");
		};
							   
		test1(test);
  });			   
</script>
</body>
</html>


L-a actiunea tag-ului <input> m-am gandit sa pun functia onclick, iar functia propriu-zisa sa fie intr-un script js, declarant in <head>.
Problema e ca nu stiu cum as putea sa fac o astfel de filtrare si afisare.
Orice idee e binevenita (problema de fapt e la condita de genul if (this.nume === si aici nu stiu cum sa pun valoarea din input).
Multumesc.


PS. Credite si multumiri lui maxtron69

#2
dexter_lab

dexter_lab

    Senior Member

  • Grup: Senior Members
  • Posts: 5,390
  • Înscris: 31.10.2007
x = document.getElementById('id_input').value ar fi o metoda. dar probabil ca exista si metode mai bune.

#3
DILAS

DILAS

    Member

  • Grup: Members
  • Posts: 320
  • Înscris: 03.12.2007
poti sa folosesti metode native din js cum ar fi find dupa ce folosesti JSON.parse;

var foo = JSON.parse(test);

var result = foo.restos.filter((item) => { return  item.name === userInput });

Dupa poti sa faci ce vrei cu result, e usor sa loopezi prin el cu map si sa intorci elemente de HTML intr-o colectie pe care o apendezi la DOM.

Nu pune on click pe input, poti f bine sa-l cauti cu jQuery gen: $('.inputClass').append(someStuff).
Scripturile se pun mereu la sfarsitul paginii si niciodata in head ca sa nu se opreasca incarcarea HTML-ului pana iti incarca scriptu.

#4
colombo2003

colombo2003

    Senior Member

  • Grup: Senior Members
  • Posts: 6,312
  • Înscris: 16.07.2008
Multumesc pentru solutiile oferite.
Am ales-o pe cea a lui dexter_lab pentru ca mi s-a parut mai simpla si usor de "digerat".


PS. Rezolvat. Se poate inchide!

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

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