NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: podbarveni vypisu z DB na onClick

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Martin Korytář:16.9.2015 20:26

zdravim, potreboval bych poradit. Mam vypis z databaze vytisknuty pomoci printf do tabulky a chtel bych jednotlive radky na onclick podbarvit jednou barvou na ondblclick druhou. K tomu jsem si vytvoril javascript ktery funguje na normalni tabulku v html. V cem je problem? a jak by se to dalo vyresit?idealne abych me vse v jednom souboru(html/php) diky za odpoved

tady je zdrojak

<script type="text/ja­vascript">

window.onload=fun­ction(){
var tfrow = document.getE­lementById('con­firm').rows.len­gth;
var tbRow=[];
for (var i=1;i<tfrow;i++) {
tbRow[i]=docu­ment.getElemen­tById('confir­m').rows[i];
tbRow[i].ondblclick = function(){
this.style.bac­kgroundColor = 'pink';
};
tbRow[i].onclick = function() {
this.style.bac­kgroundColor = '#90ee90';
};
}
};
</script>

<?php
$db = mysql_connect($ser­vername, $username, $password, $dbname);
if (!$db) {
die("Connection failed: " . mysql_connect_e­rror());
}
mysql_select_db("dbna­me",$db);
$result = mysql_query("SELECT * FROM mydb_book",$db);
$radku = mysql_num_row­s($result);

for($i=0;$i<$­radku;$i++)
{
printf("<table id='confirm' class='tab2'><tr­>\n");
printf("<td> %s</td>\n", mysql_result($re­sult,$i,"id"));
printf("<td> %s</td>\n", mysql_result($re­sult,$i,"datum"));
printf("<td> %s</td>\n", mysql_result($re­sult,$i,"nazev"));
printf("<td> %s</td>\n", mysql_result($re­sult,$i,"autor"));
printf("<td> %s</td>\n", mysql_result($re­sult,$i,"text"));
printf("</table><br>\n");
}
mysql_close($db);
?>

 
Odpovědět
16.9.2015 20:26
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Martin Korytář
Jan Lupčík:16.9.2015 20:39

Ahoj, pro vložení kódu je zde tlačítko code. Bez něj se to nedá luštit. :)

Nahoru Odpovědět
16.9.2015 20:39
TruckersMP vývojář
Avatar
Odpovídá na Martin Korytář
Martin Konečný (pavelco1998):16.9.2015 21:17

a když to JS hodíš až za PHP?
nee asi jsem napsal blbost, nevšiml jsem si události window.onload(), sorry

Editováno 16.9.2015 21:17
Nahoru Odpovědět
16.9.2015 21:17
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Martin Korytář
TomasGlawaty:16.9.2015 21:40

ten kód se nadá rozluštit .... ale pokud jsi to udělal u normální html tabulky, tak v čem je problém u tabulky echované z PHP ?

 
Nahoru Odpovědět
16.9.2015 21:40
Avatar
Odpovídá na Martin Korytář
Martin Korytář:17.9.2015 9:53

sorry, tady je vypis uz pomoci "code" davam tady jen kod pouziteho java scriptu a php vypisu z databaze, ostatni html je zbytecne, diky moc

<script type="text/javascript">

window.onload=function(){
var tfrow = document.getElementById('confirm').rows.length;
var tbRow=[];
for (var i=1;i<tfrow;i++) {
tbRow[i]=document.getElementById('confirm').rows[i];
tbRow[i].ondblclick = function(){
this.style.backgroundColor = 'pink';
};
tbRow[i].onclick = function() {
this.style.backgroundColor = '#90ee90';
};
}
};
</script>

<?php
$db = mysql_connect($servername, $username, $password, $dbname);
if (!$db) {
die("Connection failed: " . mysql_connect_error());
}
mysql_select_db("dbname",$db);
$result = mysql_query("SELECT * FROM mydb_book",$db);
$radku = mysql_num_rows($result);

for($i=0;$i<$radku;$i++)
{
printf("<table id='confirm' class='tab2'><tr>\n");
printf("<td> %s</td>\n", mysql_result($result,$i,"id"));
printf("<td> %s</td>\n", mysql_result($result,$i,"datum"));
printf("<td> %s</td>\n", mysql_result($result,$i,"nazev"));
printf("<td> %s</td>\n", mysql_result($result,$i,"autor"));
printf("<td> %s</td>\n", mysql_result($result,$i,"text"));
printf("</table>
\n");
}
mysql_close($db);
?>
 
Nahoru Odpovědět
17.9.2015 9:53
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Martin Korytář
Honza Bittner:17.9.2015 11:10

Koukni se do DOM v chromu či tak, jestli tam ta tabulka opravdu je tak, jak má být.

Nahoru Odpovědět
17.9.2015 11:10
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
TomasGlawaty
Člen
Avatar
Odpovídá na Martin Korytář
TomasGlawaty:17.9.2015 15:35

Tak já vidím třeba chybu ve výpisu tabulky.
Když ti databáze vrátí třeba 3 záznamy, tak ti ten cyklus podle mě vyhodí toto:

<table id='confirm' class='tab2'>
        <tr>
                <td>id</td>
                <td>datum</td>
                <td>nazev</td>
                <td>autor</td>
                <td>text</td>
        </tr>
</table>

<table id='confirm' class='tab2'>
        <tr>
                <td>id</td>
                <td>datum</td>
                <td>nazev</td>
                <td>autor</td>
                <td>text</td>
        </tr>
</table>

<table id='confirm' class='tab2'>
        <tr>
                <td>id</td>
                <td>datum</td>
                <td>nazev</td>
                <td>autor</td>
                <td>text</td>
        </tr>
</table>

což je špatně ... zřejmě by to asi mělo být jen v jedné tabulce, ne ? :) tímpádem máš na stránce duplicitní IDčka a JS na tom spadne, protože nemůže být více stejných id na stránce.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
17.9.2015 15:35
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.