Autor Zpráva
cink
Profil
Potřeboval bych, aby do prompt, input nebo do čehokoliv jiného uživatel napsal kus kódu, ale ne celý ten kód. Budu mít uložené písničky v jednom webu a když uživatel zadá - teď plácnu - horse, tak kód bude
<embed src="http://www.domena.cz/zvuky/horse.mp3" autostart="false" width="128" height="32">
<noembed>Plužina není nainstalována.</noembed>
Šlo by to nějak?

Předem děkuji.
Chro
Profil
Šlo by to. Měl by si se ovšem rozhodnout, v jakém skriptovacím jazyce toho chceš dosáhnout. Existují dva nejběžnější.
Javascript - vykonává skript v prohlížeči, bez nutnosti http požadavku, tedy přenosu dat klient-server-klient. Nevýhodou je, že ne každý má javascript v prohlížeči povolen.
PHP - výkon na straně serveru. Dochází k požadavkům na server, tedy patrné či nepatrné prodlevě. Nezávislé na nastavení prohlížeče.
cink
Profil
Já bych upřednostnil spíše Javascript, PHP neumím. Ale kdybys mi poslal přímo kód na zkopírování, tak bych byl vděčný.
Chro
Profil
Já zase neumím javascript a PHP za 3 s odřenýma ušima.
cink
Profil
A na to PHP bys neznal nějaký odkaz?


Už jsem zkoušel různé věci, třeba prompt, ale musí se tam zapsat celý tag:
<body>
<script>

x = prompt("Tady napíše kód, třeba <hr>", "");
document.write("Nad čarou");
document.write(x);
document.write("pod čarou.");

</script>
</body>
Bohuže se tam musí zadat celý tag, v tomto případě <hr>.
Chro
Profil
V PHP ti to napíšu z hlavy. Stránka by měla mít příponu php, např. index.php, a na serveru nainstalováno PHP, na hostinzích běžná věc.
<form action="" method="POST">
<input type="text" name="nazev" value="" size="16">
<input type="submit" value="Přehrát">
</form>
<?php
if (isset($_POST['nazev']))
{
$nazev = htmlspecialchars($_POST['nazev'], ENT_QUOTES);
echo <<<EOT
<embed src="http://www.domena.cz/zvuky/{$nazev}.mp3" autostart="false" width="128" height="32">
<noembed>Plužina není nainstalována.</noembed>
EOT;
}
?>
V Javascriptu spoj řetězec + proměnnou + řetězec.
document.write('<embed ...' + x + '.mp3 ... >');
cink
Profil
Díky, mě by to nikdy nenapadlo :D

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: