Javascript alert funguje jen pro čísla – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Javascript alert funguje jen pro čísla – JavaScript, AJAX, jQuery – Fórum – Programujte.comJavascript alert funguje jen pro čísla – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Mazec
~ Anonymní uživatel
5 příspěvků
6. 4. 2018   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 92.240.177.–
peter
~ Anonymní uživatel
3981 příspěvků
6. 4. 2018   #2
-
0
-

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)

Nahlásit jako SPAM
IP: 2001:718:2601:258:4cf5:7f...–
peter
~ Anonymní uživatel
3981 příspěvků
6. 4. 2018   #3
-
0
-

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>
Nahlásit jako SPAM
IP: 2001:718:2601:258:4cf5:7f...–
peter
~ Anonymní uživatel
3981 příspěvků
6. 4. 2018   #4
-
0
-

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.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4cf5:7f...–
Mazec
~ Anonymní uživatel
5 příspěvků
6. 4. 2018   #5
-
0
-

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.

Nahlásit jako SPAM
IP: 92.240.177.–
Kit+15
Guru
6. 4. 2018   #6
-
0
-

#4 peter
Pokud ten skript napíšeš slušně a nemícháš HTML do PHP, tak obarvování syntaxe není potřebné. Hnusnému kódu nepomůže ani obarvení.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Mazec
~ Anonymní uživatel
5 příspěvků
6. 4. 2018   #7
-
0
-

Všiměte si prosím v prvním kodu, jak se láme barva textu ve: $row["popis"]

Kde: $row[" je červeně

Kde: popis"] je černě

Nahlásit jako SPAM
IP: 92.240.177.–
Mazec
~ Anonymní uživatel
5 příspěvků
6. 4. 2018   #8
-
0
-

#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

Nahlásit jako SPAM
IP: 92.240.177.–
Kit+15
Guru
6. 4. 2018   #9
-
0
-

#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á.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Mazec
~ Anonymní uživatel
5 příspěvků
6. 4. 2018   #10
-
0
-

#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

Nahlásit jako SPAM
IP: 92.240.177.–
Kit+15
Guru
6. 4. 2018   #11
-
0
-

#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;
Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3981 příspěvků
9. 4. 2018   #12
-
0
-

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.

Nahlásit jako SPAM
IP: 2001:718:2601:258:4dbc:38...–
fix
~ Anonymní uživatel
182 příspěvků
13. 4. 2018   #13
-
0
-

#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.

Nahlásit jako SPAM
IP: 92.240.177.–
fix
~ Anonymní uživatel
182 příspěvků
13. 4. 2018   #14
-
+1
-
Zajímavé
Kit +

#11 Kit
Ten heredoc, vypadá taky dobře, nějakou pobodnou konstrukci jsem používal v c#, díky za tip, až se zase budu topit v závorkách, zkusím to použít.

Nahlásit jako SPAM
IP: 92.240.177.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý