Autor Zpráva
Mira
Profil *
Ahoj hledal sem všude možně a nemohl jsem se dohledat.

Mám menu vytvořené přes php a po kliknutí na jedno z tohoto menu "li" by se měla načíst stránká v divu třeba #xxx. Ale ještě k tomu bych chtěl odeslat přesné parametry tykajíciho se přimo toho jednoho daného menu (třeba jeho název, id atd). V ajaxu sem to dělal tak že do li jsem vložil onclick="funkce(id, nazev)" ale nejde mi do hlavy jak to pošlu do jQuery.
<? 
			$vyberHlavniMenu=mysql_query("
				SELECT
					*
				FROM
					menu_hlavni
			"); 
			while($zaznamHlavniMenu=MySQL_Fetch_Array($vyberHlavniMenu))
			{
				if ($zaznamHlavniMenu["zobrazovat"]){
				  echo '<li id="menu'.$zaznamHlavniMenu["idmenu_hlavni"].'"><a href="/"><span>'.$zaznamHlavniMenu["nazev"].'</span></a></li>	';
				}
			}
		?>



jquery
$.ajax({
  url: "nactenysoubor",
  dataType: 'php',
  success: function(){    
       alert("podstranka se načetla");
});


Předem díky za odpověd
Witiko
Profil
$.ajax({
  url: "nactenysoubor.php?parametry=" + parametry,
  dataType: 'text/html',
  success: function(){    
       alert("podstránka se načetla");
});


Doporučuji php scriptu předat parametry buď takto, nebo pomocí atributu date a type POST. Jinak co mělo být dataType: 'php'? Sem máš předat očekávaný mime type, navracený dokument je html. Viz. dokumentace: http://api.jquery.com/jQuery.ajax/ :)
Mira
Profil *
Dobře ale teď si vezmi kdybych měl tabulku o tisici hodnotách a u každého bych chtěl použít tentýž $.ajax ale s jinymy parametry.

dejme tomu že mám toto jQuery
$.ajax({
  url: "nactenysoubor.php?parametry=" + prom,
  dataType: 'text/html',
  success: function(){    
       alert("podstránka se načetla");
});


jak dostanu z celé te dlouhé tabulky po kliknuti na tlačítko u jednoho řádku přesně jeho id. To mi nejde do hlavy totiž.
Mira
Profil *
už mě napadlo jak to vysvětlit co vlastně potřebuju

místo toho abych bezhlavě 1000x opisoval stejný kod jako je tento. (který mimochodem není ani správně .. ale jako ukázka snad stačí)
$("#div").load("soubor.php?id=1");
$("#div").load("soubor.php?id=2");
$("#div").load("soubor.php?id=3");



Tak chci udělat multifunkční kod. jako bude tenhle a po kliknuti na nějaký řadek v tabulce chci abych dostal jeho idRadku do id v jQuery viz niže.
$("#div").load("soubor.php?id="+id);


ale nevim jak dostat z řadku tu hodnotu do jQuery. Snad už to je nějak srozumitelný :-)
pcmanik
Profil
nastuduj funkciu attr v dokumentacii.....
Witiko
Profil
pcmanik:
U atributu id postačí standardní javascript bez volání čehokoliv:
<div id="1" onclick="$('#div').load('soubor.php?id=' + this.id);"> ... </div>
<div id="2" onclick="$('#div').load('soubor.php?id=' + this.id);"> ... </div>
<div id="3" onclick="$('#div').load('soubor.php?id=' + this.id);"> ... </div>
pcmanik
Profil
Witiko:
To je pekne, ale nerad kombinujem html a javascript, pri malych veciach nevadi, ale pri velkych projektoch sa potom v tom budes stracat.
Witiko
Profil
pcmanik:
Jde pouze o ukázkový kód, o který Mira požádal. Nechtělo se mi psát mu sem způsob označení elementů a script zvlášť, samozřejmě je lepší přiřazovat event listenery pomocí scriptu, to nechávám na něm.

To samozřejmě nic nemění na tom, že použití funkce attr je v tomto případě (podobně jako například v tomto) zcela zbytečné. :)
pcmanik
Profil
Witiko:
Trochu od veci, este som taketo pouzitie nevidel, da sa to teda aplikovat aj na this.title? ak davam urcite informacie do toho?
Witiko
Profil
pcmanik:
este som taketo pouzitie nevidel

Jedná se o prakticky nejběžnější použití. Aplikovat to lze na libovolný atribut HTML, je to rychlejší, než volání funkce. Možná někdo doplní mou případnou neznalost o případy, kdy je použití vhodné, nicméně všeobecně bych se řídil informacemi v tomto topicu, který založil Chamurappi.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0