JS (jQuery) kroky

Programovacie jazyky, rady, poradňa...
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

JS (jQuery) kroky

Príspevok od používateľa mnichovcan »

Zdravím

chcel by som dosiahnuť niečo ako je toto http://www.bazar.sk/pridanie-neprihlaseny/ také kroky že najskôr klikne na kategoriu potom na podkategoriu a stále je to na jednej adrese.
Napadlo ma ako to spraviť asi len pomocou php ale to by asi nebolo na jednej url a ja to chcem cez jQuery. Nechcem aby mi tu niekto písal celý script len nejaké usmernenie ako to asi funguje. Prípadne akú funkciu použiť. S php robím pomocou laravelu (čo asi nieje v tomto prípade podstané :) ) .
S.T.E.A.L.T.H
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 933
Registrovaný: 31 jan 2010, 14:44
Bydlisko: Pegasus Galaxy

Re: JS (jQuery) kroky

Príspevok od používateľa S.T.E.A.L.T.H »

Je to ajax, pozri si
$.ajax()
$.load()
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

Re: JS (jQuery) kroky

Príspevok od používateľa mnichovcan »

Tak podarilo sa mi

Kód: Vybrať všetko

<div id="box_center"> 

	          

    <a  href="#" class="get" rel="{{ $zoznam->id }}">{{ $zoznam->nazov }}</a> <br>



</div>

<script type="text/javascript">

$(document).ready(function(){


$('.get').click(function(){

	var trieda = $(this).attr( "rel" );

	$.get('pridat',{ tr:trieda },function(data){

   $("#box_center").text(data);


	});

  return false;

});

});

</script>
Len neviem ako vypísať tie data z tej callback funkcie . Takto to vypíše len [object Object],[object Object],[object Object] (3 mám aj záznamy v tabulke v DB) . V php vraciam pole objektov ,

Kód: Vybrať všetko

    

$data = Kategorie::where('trieda_id',Input::get('tr'))->select('id','nazov')->get();
 return $data; 
je to v laraveli . Ked to vypisujem pomocou

Kód: Vybrať všetko

 foreach ($data as $zoznam)  {  $zoznam->id  }
tak to ide ale v tom jquery neviem ako to mám vypísať všetky idcka a nazvy.

Pozeral som nejakú funkciu .each() len neviem ako to snou mám vypísať .

//autoeditácia príspevku (18 Máj 2014, 23:45)
Už som nato prišiel. Vždy ked sem niečo dám tak až potom nato prídem a zistím aké jednoduché to bolo. :roll: Potom sa cítim hlúpo :)

//autoeditácia príspevku (19 Máj 2014, 0:26)
Tak predsa jeden problém možno len primitívny (pre vás :) ).

Kód: Vybrať všetko

<script type="text/javascript">

$(document).ready(function(){


$('.get').click(function(){

	var trieda = $(this).attr( "rel" );

	$.get('pridat',{ tr:trieda },function(data){

  $.each(data, function(){
console.log(this);
           $("#box_center" ).html( "Nazov" + this.nazov + "ID" + this.id + "<br/>" );
 
		
	});

	});

  return false;

});

});

</script>
Takto to vypisuje len posledný riadok. V console sú 3 object pekne pod sebou. Ako to mám tak vypísať od prvého , pod seba ?
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: JS (jQuery) kroky

Príspevok od používateľa awtt »

No lebo v kazdej iteracii prepisujes to co je vnutry $("#box_center" )
Mozes pouzit namiesto .html .append alebo este lepsie nieco take:

zmen:

Kód: Vybrať všetko

$.each(data, function(){
  $("#box_center" ).html( "Nazov" + this.nazov + "ID" + this.id + "<br/>" );
});
na:

Kód: Vybrať všetko

var content = "";
$.each(data, function(){
  content +=  "Nazov" + this.nazov + "ID" + this.id + "<br/>";
});
$("#box_center" ).html(content);
mnichovcan
Medium Expert
Medium Expert
Príspevky: 97
Registrovaný: 17 mar 2011, 23:03

Re: JS (jQuery) kroky

Príspevok od používateľa mnichovcan »

Dakujem ide to .

No mám další problém možno ešte primitívnejší ktorý neviem vyriešiť. Neviem prečo mi nejde otvoriť stránka z dokumentáciu od jQuery. no to nieje ten problém :)

Kód: Vybrať všetko

$(document).ready(function(){


 $('.get').click(function(){

   var trieda = $(this).attr( "rel" );

	$.get('pridat',{ tr:trieda },function(data){

       var content = "";

         $.each(data, function(){
           content +=  "<a  href='#' class='f'  >"+this.nazov+"</a><br/>";
           });

        $("#box_center" ).html('<h2>Podkategorie</h2>'+content);

	 });

  return false;

});



  $('.f').click(function(){

  
        $("#box_center" ).html("niečo");


  return false;

});



});


Vypísal som to podla toho ako mi poradil to ide pekne. Ale teraz chcem aby sa po kliknutí na ten odkaz čo som vypísal -> content += "<a href='#' class='f' >"+this.nazov+"</a><br/>"; aby sa vykonala ta ďalšia funkcia ('.f ') no nejde to. Ked pozriem zdrojový kód stránky tak tam sa ten id #box_center ani neprepíše stále je tam to isté to čo sa vypisuje v php. Teda je možnosť že ten class .f ani neexistuje a preto to nejde :?: Ale ked dám v chrome ten debugovací nástroj tak tam sa obsah toho divu zmenil na tie nové linky čo vypisujem v tej funkcii po kliknutí na class = get . Takže prečo sa nevykoná tá funkcia ked kliknem na ten class f ? :) Asi som to tu napísal ako magor ale hádam sa to dá s toho pochopiť čo chcem.
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Re: JS (jQuery) kroky

Príspevok od používateľa awtt »

Ah jo :)

V momente ked bindujes ten click, ziadny z tych odkazov neexistuje tak samozrejme ze ti to nejde.
Zmen:

$('.f').click(function(){

Na

$("#box_center" ).on("click", ".fn", function(e)){

A namiesto return false pouzi radsej e.preventDefault() v tej funkcii
Napísať odpoveď