Autor Zpráva
Majkelju
Profil
Zdravím, potřebuju v alert okně zobrazit naformátovaný text, ideální by bylo, aby to bylo zarovnané do tabulky, ale html tagy mi to v alertboxu nevezme jako formátování, ale jako text... Tak to dělám stylem
$detaily = 'Název\tZnačka\tPopis\tMnožství\tmj\n';
a pomocí funkce pak zobrazím:
        var detaily = '<?echo $detaily;?>';
        alert(detaily);

Jenže takhle mi to zas neukáže to odsazení, o které se snažím pomocí \t .... V čem je fígl? Jak zařídit, aby \t bylo skutečně odsazené, případně jak tam nabouchat html tagy pro tabulku?
martin1312
Profil
$detaily = 'Název\tZnačka\tPopis\tMnožství\tmj\n';
namiesto apostrofu pouzi uvodzovky " "

EDIT:
teda oprava, pravdepodobne ich bude treba pouziť aj sem var detaily = '<?echo $detaily;?>';
Majkelju
Profil
Řekl bych, že to na to nemá žádný vliv... Funguje to pořád stejně...
martin1312
Profil
Ako tak teraz skúšam, tabulátor nefunguje, ale nový riadok áno \n, tak neviem či je to nejako obmedzené v tom alert okienku. Počkaj na vyjadrenie niekeho skúsenejšieho.
Majkelju
Profil
jj přesně...taky mi zalomení funguje normálně... stejně by bylo nejlepší, kdyby to vzalo tu tabulku...zkoušel jsem htmlentities a htmlspecialchars ale to asi nebudou ty správné fce.
_es
Profil
Majkelju:
potřebuju v alert okně zobrazit naformátovaný text
To nejde, nie je na to určený. Ide tam zobraziť len nenaformátovaný text. To, ako sa spracujú „biele“ znaky, môže závisieť od prehliadača.
Jan Tvrdík
Profil
Majkelju:
Pro předání řetězce z PHP do JS použij funkci json_encode (viz phpfashion.com/escapovani-definitivni-prirucka).

var detaily = <?php echo json_encode($detaily); ?>;
Majkelju
Profil
Jan Tvrdík: Bohužel tahle metoda mi nefunguje taky...

A nebo co to udělat něčím jiným, než alertem, ale na stejný princip? Existuje něco vhodnějšího?
Chamurappi
Profil
Reaguji na Majkelju:
Napozicovaný <div>. Ale ten nikdy nebude fungovat úplně stejně jako alert.
Majkelju
Profil
Chamurappi:
Tak jsem to tedy vzdal a udělal to pomocí window.open()....taky postačí...
peta
Profil

$detaily = 'Název\tZnačka\tPopis\tMnožství\tmj\n';
\cokoliv je znak pro php ''

detaily = 'Název\tZnačka\tPopis\tMnožství\tmj\n';
\cokoliv je znak pro js ''

$detaily = 'Název\\tZnačka\\tPopis\\tMnožství\\tmj\\n'; // dabl lomitko
var detaily = '<?echo $detaily;?>';
        alert(detaily);
(viz Jan Tvrdík)
Rellik
Profil
Majkelju:
window.open()....taky postačí...
Myslím, že nepostačí, jelikož většina prohlížečů má zakázané "popup" okna.
Otevření nového okna » Blokování nových oken
Jan Tvrdík
Profil
Majkelju:
Bohužel tahle metoda mi nefunguje taky...
Já jsem neřešil tebou popsaný problém, protože alert prostě rozumně naformátovat nejde. Řešil jsem bezpečnostní problém o kterém ty zřejmě ani netušíš, že existuje.

udělal to pomocí window.open()
Napozicovaný <div> je výrazně lepší. U window.open hrozí, že se vůbec neotevře.

peta:
Nedoporučuj řešení, které obsahuje potenciální XSS zranitelnost. Navíc to, co navrhuješ, je blbost.
_es
Profil
Rellik:
většina prohlížečů má zakázané "popup" okna.
Obvykle zakázané len vtedy, ak by neboli otvorené ako reakcia na kliknutie myšou, či podobnú akciu návštevníka.

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: