Autor Zpráva
spiider
Profil *
Ahoj,mam problem.....v php si vytisknu nejaka data do tabulky z DB a chtel bych aby po najeti mysi na kazdy radek se mi objevilo nove okno s vetsim detailem.Vsechno me funguje ale jenom pro prvni radek protoze se nepreda dalsi hodnota ID radku. Kod mam asi takto:
===v PHP================
............
............
............
while($data= mysql_fetch_assoc($q)){
<tr>
<td>$data[vlozeno]</td>
<td>$data[zmeneno]</td>
<td>$data[vlozil]</td>
<td>$data[zmenil]</td>
<td>$data</td>
<input type='hidden' value='$dat[id]' name='id'>
</tr>
}
<div id='obsah'></div>

====jquery=========
$(document).ready(function()
{
$("table tr").hover(function()
{
var cil = document.getElementById('obsah');
var id = $("input[name='id']").val();
$.get("uvodnik_ajax_jquery.php", {id: id}, function ( data )
{
cil.innerHTML = data;
});
$("#obsah").fadeIn(500);
},function()
{
$("#obsah").fadeOut(500);
});

});
====================
Diky za kazdou radu,nikde sem to nemohl najit
tiso
Profil
spiider: tento pseudokód ti aj funguje? Skús sem vložiť relevantné úseky kódu, ale tak, aby si nezrušil aj jeho syntaktickú správnosť.
spiider
Profil *
Jo funguje,tak teda jeste jednou:
=======PHP========
<table border='1'>

<tr>
<td>vloženo</td>
<td>změněno</td>
<td>vložil</td>
<td>změnil</td>
<td>aktualní</td>
</tr>

<?
while($data= mysql_fetch_assoc($q)){
print"
<tr>
<td>$data[vlozeno]</td>
<td>$data[zmeneno]</td>
<td>$data[vlozil]</td>
<td>$data[zmenil]</td>
<td>$data[aktualni]</td>
<input type='hidden' value='$data[id]' name='id'>
</tr>

";
}
print"
</table>
<div id='obsah'>
<p></p>
</div>
";
?>
=================
====jquery========
$(document).ready(function()
{
$("table tr").hover(function()
{
var cil = document.getElementById('obsah');
var id_radku = $("input[name='id']").val();
$.get("zpracuj.php", {id: id_radku}, function ( data )
{
cil.innerHTML = data;
});
$("#uvodnik_obsah").fadeIn(500);
},function()
{
$("#uvodnik_obsah").fadeOut(500);
});

});

=================
======zpracuj.php=======
<?php
$id = $_GET['id'];
$data = mysql_fetch_assoc(mysql_query("SELECT obsah FROM uvodnik WHERE id_uvodnik='$id'"));
echo $data['obsah'];

?>
================

Takhle nejak to mam a zobrazuje to teda jenom porad idcko toho prvniho radku v tabulce,Diky za odpovedi
tiso
Profil
Problematické riadky:
PHP:
<input type='hidden' value='$data[id]' name='id'>

Javascript:
var id_radku = $("input[name='id']").val();


- nemôžeš mať viacero inputov s jedným name
- následne musíš inak zaistiť vybratie toho správneho inputu, nie na základe name
spiider
Profil *
no a jak teda to mam udelat?? inputy sice muzu pojmenovat jinak ale jak k nim pak pristoupim spravne......?
tyger
Profil
Nevím, zda jsem to správně pochopil, ale buď můžeš dát každemu inputu jine ID podle ID z databaze, třeba
<input type='hidden' value='$dat[id]' name='id".$dat[id]."'>
a pak pristupovat přes this, nebo jeste lepe si dej name jake chces a kademu inputu dej vlastni ID
<input type='hidden' value='$dat[id]' name='libovolne' id='id".$dat[id]."'>
Pak mužes přistupovat k elementu pomoci jeho unikatniho ID
spiider
Profil *
diky za tip,trosku sem na to koukal ale nevim jak mam pak dostat nebo spis kam dat to this nebo v druhym pripade podle ID jak si psal, jak to sladit dohromady s tim id_radku = $("input[name='id']").val();
Jestli to bude treba id_radku = $("input[name=this.value]").val(); nebo id_radku = this.("input[name='id']").val();..........fakt netusim vubec..........:(
tyger
Profil
Tak jsem se na to díval...
Ten input v té tabulce je podle mě zbytečný, můžeš přece přiřadit ID přímo řádkům:
<tr id='".$data['id']."'>


Řádek, na kterým máš právě myš, pak identifikuješ takto:
$(document).ready(function(){
  $("tr").hover(function(){
   alert (this.id);
 });
});


S tím ID si pak můžeš dělat co chceš, můžeš ho poslat metodou GET a tahat podle něj data...
spiider
Profil *
hej diky tak to funguje :) s tim prirazeni id do tr me to napadlo ale nevedel sem to this jak pouzit spravne, takze paradicka......jeste jednou diky za tvuj cas a rady :)

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