Ahoj všem, prosím o kontrolu mého velmi krátkého kodu, jistě tam má jen špatně uvozovky nebo něco podobného.
polo-živá ukázka:
https://jsbin.com/ziyivowoyi/edit?html,js,output
Děkuji moc všem za radu.
Dotaz je nejasny. Na co presne se ptas? Co ti funguje? Co ti nefunguje? A jak ocekavas, ze by to melo fungovat?
Javascriptovy kod showModal funguje spravne.
Php kod se spousti pres php server, to jsbin neumi.
Html/js kod, vysledny, pokud to spustis pres php server, si muzes prohlednout pomoci web prohlizece. Obvykle kliknutim do stranky, prave tlacitko, zobrazit zdrojovy kod nebo zobrazit zdrojovy kod vyberu, pokud mas neco oznacene. (firefox)
A jako php kod je to samozrejme spatne, ale to by ses ptal v php sekci fora, asi. Napriklad za // php smaze vse do konce radku, vcetne ?>
Zkus pouzivat obarvovac kodu, editor s obarvovanim kodu. Kdyz pouziji z tohoto forka, tak to vypada takhle
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
Working:
<i class="pe-7s-comment clickable" onclick="showModal(98495499)">click here</i>
<br>Working:
<i class="pe-7s-comment clickable" onclick="showModal('fff')">click here</i>
<br> Working (on my server):
<?php $row["numeric"] = 98495499; //from database?>
<i class="pe-7s-comment clickable" onclick="showModal('.$row["popis"].')">click here</i>
<br>Not working (on my server):
<?php $row["popis"] = "fff"; //from database?>
<i class="pe-7s-comment clickable" onclick="showModal('.$row["popis"].')">click here</i>
<br><br><br>I used as (working only for numeric, text not working :-( )
<br>
<textarea width="100%" height="100%">$nestedData[] = '<i class="pe-7s-comment clickable" onclick="showModal('.'$row["popis"]'.')"></i>';
</textarea>
</body>
</html>
http://hilite.me/
language=php
color = default
linenumber = on
Na radku 14
<?php $row["numeric"] = 98495499; //from database?>
<?php je hnedou, ale
?> na konci je modrou, barvou komentare, takze to php bude nejspis take ignorovat, ze jo. 'Nejspis', protoze na obarvovace kodu se neda 100% spolehnout. Spis jsou pomuckou.
Ne o to co je na jsbin vubec nejde jde především o tohle:
$nestedData[] = '<i class="pe-7s-comment clickable" onclick="showModal('.'$row["popis"]'.')"></i>';
Přičemž pole $nestedData[] ta jde potom do dalšího pole a to se potom předává dalšímu javascriptu v podobě JSON a ten to potom vypisuje v tabulce.
Problém je v tom, že:
Funguje:
<i class="pe-7s-comment clickable" onclick="showModal(565666556)"></i>
Ale tohle už nefunguje:
<i class="pe-7s-comment clickable" onclick="showModal('nejaky text')"></i>
A tohle co chci používat také nefunguje:
<i class="pe-7s-comment clickable" onclick="showModal('.'$row["popis"]'.')"></i>
Pouze takový něco jako pseudokod, pro zvýreznění předchozího vysvětlení
pokud ("SELECT popis FROM table WHERE id=$id" obsahuje číslelnou hodnotu např.: 45678654) {
alert // funguje správně, ale pro číselné hodnoty já to nepotřebuji
} ale pokud ("SELECT popis FROM table WHERE id=$id" obsahuje textový řetězec např.: "ukazkovy text") {
alert() // nefunguje, po kliknutí na ikonku alert nevyskočí, pro textové hodnoty, pro které to potřebuji alert právě bohužel nefunguje
}
Už mi rozumíte? A máte pravdu bude to asi spíš problém v PHP kodu.
Omlouvám se za předchozí blbé popsání problému.
#6 Kit
Jinak to bohužel nejde. Muselo by se to celé přeprogramovat a to nechci, jelikož využívám obří js knihovnu datatables a naprogramování to tak jak potřebuji by mi trvalo měsíc každodenního vývoje. A toa to prostě umí jen tak, že předává data pro tabulku v jsonu a v html je pouze záhlaví tabulky a o zbytek se stará již dataTables
#8 Mazec
Někdy stačí řádek rozepsat na dva:
$onclick = "showModal('" . $row["popis"] . "')";
$nestedData[] = '<i class="pe-7s-comment clickable" onclick="' . $onclick . '"></i>';
Dělávám to ještě úsporněji přes Heredoc nebo XSLT, ale mnoho vývojářů to odmítá.
#9 Kit
Super funguje to, asi si to jen nerozepsal, ale i jsi tam udělal nějakou neekvivalentní úpravu právě v závorkách.
Díky za pomoc, rozepsat si to mě taky napadlo, ale v zápětí sem to zapomněl vyzkoušet.
Chtěl jsem ti dát +1 ale prý neregistrovaní uživatelé nemohou hlasovat, budu se muset pro příště registrovat.
Tedy vyřešeno, děkuji i ostatním
#10 Mazec
Tady to mám celé, kdybys chtěl vidět, jak se pracuje s Heredoc:
<?php
$row = array();
$nestedData = array();
$row["numeric"] = 98495499; //from database
$row["popis"] = "fff"; //from database
$onclick = "showModal('" . $row["popis"] . "')";
$nestedData[] = '<i class="pe-7s-comment clickable" onclick="' . $onclick . '"></i>';
$data = implode('', $nestedData);
echo <<<EOT
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
Working:
<i class="pe-7s-comment clickable" onclick="showModal(98495499)">click here</i>
<br>Working:
<i class="pe-7s-comment clickable" onclick="showModal('fff')">click here</i>
<br> Working (on my server):
<i class="pe-7s-comment clickable" onclick="showModal('{$row[popis]}')">click here</i>
<br>Not working (on my server):
<i class="pe-7s-comment clickable" onclick="showModal('{$row[popis]}')">click here</i>
<br><br><br>I used as (working only for numeric, text not working :-( )
<br>
<textarea width="100%" height="100%">$data</textarea>
</body>
</html>
EOT;
Tys mne nepochopil. Showmodal funguje spravne. Pokud mas chybu v php a generujes s nim html, tak to nejlepe uvidis ve www prohlizeci, webova / javascriptova konzola nebo zdrojovy kod stranky. Tam vidis html kod, ktery generujes phpckem. To, co popisujes, s tim textem, to mas na pastebin jako fff. To funguje spravne.
Ten php kod mas samozrejme spatne, uvozovky, treba. Mi slo spis o to, aby sis to nasel sam a vvedel, jak takove chyby najit.
#12 peter
Já sem samozřejmě věděl jak na troubleshooting. Že se mám podívat do zdrojáku co vrací PHP a viděl jsem, že ten konstruktor té showModal funkce je rozbitý. Buď oříznutý a nebo jinak zdeformovaný a věděl sem na 100%, že je problém v závorkách, se závorkami občas bojuji, když jich je tam víc, nevím co s nimi. Teď řeším podobný problém se závorkami, a nepomáhá ani to, když si to rozepíšu, mnohdy používám něco jako kombinace " a ' a takový sekvence se zpětným lomítkem nějak vůbec nepoužívám, ale nastuduji si to, abych v tom měl už konečně jasno a nemusel s tím vždycky bojovat metodou pokus-omyl. :-D Každopádně děkuji za reakci.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku