Autor Zpráva
Fisak
Profil
Dobrý den, mám zde jeden problém kde se mi načítají kódy ale dvakrát jinak.. jednou je to pro vizualizaci na webu a druhá verze je pro tisk. Verzi pro tisk chci zobrazit pouze v případě že se klikne na určený label. Bohužel to nefunguje tak jak jsem to zamýšlel.. netuší někdo proč? Předem děkuji za odpovědi.
<style media="print">
body {
display: none;
}
</style>
<?php
$sqlcode = DB::query("select * from [:pref:code]");
foreach ($sqlcode as $n => $datacode) {

    echo "
  <form method=\"post\">
  <tr><td><label onclick=\"document.getElementById('my_div').innerHTML = '<style media='print'> #".$datacode->code." {display: block;} </style>' \">
  <input type=\"checkbox\" name=\"checklogin\" value=\"1\">
  ".$datacode->code."</td><td>".$datacode->date_add."</td><td>".$datacode->active."
  </label></td><td>
  <input type='hidden' value=".$datacode->id." name='idcode'><input name=\"edit_code\" type=\"submit\" id=\"form\" value=\"upravit\"/>
  <input name=\"delete_code\" type=\"submit\" id=\"form\" value=\"Smazat\"/>
  </td></tr>
  </form>";
  
  echo "
  <div class=\"singlecodeprint\" id=\"".$datacode->code."\" style=\"display:none;\">
  <p>Gratulujeme, nalezl si vítězný kód</p>
  <p>www.scode.cz</p>
  <div class=\"bar\">".$datacode->code."</div>
  <br><p><center>".$datacode->code."</center></p>
  </div>
  ";

}



Zjistil jsem že tam vadí to <style media='print'> -> to 'print' ty apostrofy.. ale pokud tam dám uvozovky tak to taky vadí.. a další problém je že pokud je více položek tak innerHTML přidává pouze jednu a to tu kterou jsem označil jako poslední. A ještě jedna věc je ta že pokud label odoznačím tak ten style nezmizí...
Fisak
Profil
Tak už částečně opraveno ale bohužel mi to furt nezobrazuje při tisku ty kódy co má :(
<style>
.printcontent {
display: none;
}
</style>
<style media="print">
.noprintcontent {
display: none;
}
.menu_div {
display: none;
}
.mdl-layout__header {
display: none;
}
.is-casting-shadow {
display: none;
}
.printcontent {
display: block;
}
</style>
<?php
echo "<div class=\"printcontent\">
<div class=\"innercontent\">";
$sqlcode = DB::query("select * from [:pref:code]");
foreach ($sqlcode as $n => $datacode) {
  
  echo "<div id=\"my_div".$datacode->code."\"></div>
  <div class=\"singlecodeprint\" id=\"okejdiv".$datacode->code."\" style=\"display:none;\">
  <p>Gratulujeme, nalezl si vítězný kód</p>
  <p>www.scode.cz</p>
  <div class=\"bar\">".$datacode->code."</div>
  <br><p><center>".$datacode->code."</center></p>
  </div>
  ";

}

echo "</div></div>";


echo "

<div class=\"menu_div\">
<a class=\"mdl-navigation__link\" href=\"/administrace/kody/\">Spravovat kódy</a>  
<a class=\"mdl-navigation__link\" href=\"/administrace/pridat-kody/\">Přidat kódy</a>
||
<a class=\"mdl-navigation__link\" href=\"#\" onclick=\"window.print()\">Tisk kódů</a>
</div>
<div class=\"noprintcontent\">
<table>";
$sqlcode = DB::query("select * from [:pref:code]");
foreach ($sqlcode as $n => $datacode) {

    echo "
  <form method=\"post\">
  <tr><td>"; ?>
  <label onclick="myFunction('<?php echo $datacode->code; ?>')">
  <?php echo "<input type=\"checkbox\" name=\"checklogin\" value=\"1\">
  ".$datacode->code."</td><td>".$datacode->date_add."</td><td>".$datacode->active."
  </label></td><td>
  <input type='hidden' value=".$datacode->id." name='idcode'><input name=\"edit_code\" type=\"submit\" id=\"form\" value=\"upravit\"/>
  <input name=\"delete_code\" type=\"submit\" id=\"form\" value=\"Smazat\"/>
  </td></tr>
  </form>";

}

echo "</table></div>";
?>

<script>
function myFunction(vale) {
    var crl = vale;
    document.getElementById('my_div'+ crl).innerHTML = '<style media="print"> #okejdiv'+ crl +' {display: block;} </style>'
}

</script>

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: