Autor Zpráva
MilanJ
Profil
Jak měnit vlastnosti CSS pomocí PHP?

V JavaSrciptu napíšu document.getElementById('id_prvku').style.visibility='visible';, ale jak je to v PHP?
Hugo
Profil
MilanJ

Proste vygeneruješ css soubor pomocí php, ale samozřejmě na každou změnu je potřeba odeslat požadavek na server.
MilanJ
Profil
Mě jde o změnu jednoho parametru, tak jak je uvedeno nahoře (ale v JS)
Peca
Profil
Přidat do hlavičky souboru, ve kterém se to má měnit, zápis typu:
<style> #id_prvku {visibility:visible;} </style>
MilanJ
Profil
Do hlavičky souboru?
Nemůžu použít změnu stylu v podmínce, např.

if ($id=="") <style>#id_prvku {visibility:visible;} </style> , s tím, že by se podmínka vyhodnotila po odeslání formuláře.
MilanJ
Profil
Nebo to možné není?
Peca
Profil
Jasně, je to možné. Do <head> ... </head> vložíš něco takovéhoto:
<? if ($id!="")
echo "<style>#$id {visibility:visible;} </style>";
?>
$id je přímo název toho elementu, který se má zvýraznit. Případně nějak upravit. Pokud jsem to pochopil správně.
MilanJ
Profil
Možná na to jdu špatně...
Potřebuju ověřit vyplnění formulářových polí, ale chci to udělat pomocí PHP, ne JS.
Nějak mi to nejde.
Hugo
Profil
MilanJ

A co to má společného s CSS?
MilanJ
Profil
Chtěl jsem nastavit za každý INPUT ve formuláři neviditelný SPAN, který obsahu hlášku o nutnosti vyplnění pole. SPAN má nastavenu vlastnost HIDDEN a při zpracování formuláře, ve kterém by dané políčko nebylo vyplněno (nebo bylo vyplněno špatně), se SPAN zobrazí.
Tak jsem to aspoň zamýšlel.
MilanJ
Profil
Možná se to ale dělá jiným způsobem...
Hugo
Profil
MilanJ

Pokud to chces delat pomocí PHP, tak je to zbytečné. Protože musíš data před zpracováním odeslat na server.

Takže po přijetí formuláře ty data zkontroluj, a pokud tam bude chyba, tak znovu vypiš formulář a nad pole se špatnými údaji dej upozornění.

Nepleť si serverové (PHP, Perl ...) a klientské (JS) skriptování.
MilanJ
Profil
A kam takové ověření umístit?
Do <HEAD></HEAD> ?
llook
Profil
Dá se to dělat třeba takhle. Formulář si uložíš do souboru formular.php a odesíláš ho na zpracuj.php.

zpracuj.php:
<?php

$errors = array();
if (empty($_POST['id'])) {
$errors['id'] = 'ID musí být vyplněno';
}
if (strpos($_POST['mail'], '@') === false) {
$errors['mail'] = 'E-mail musí být platná adresa elektronické pošty.';
}
// atd.

if (empty($errors)) {
// Tohle se provede, pokud jsou všechna data v pořádku
zpracuj_formular();
} else {
// Tohle se provede, pokud je něco špatně vyplněné
include 'formular.php';
}


formular.php:
<form action="zpracuj.php" method="post">

<?php if isset($errors['id']) { echo "<p>$errors[id]</p>"; } ?>
<p>ID: <input type="text" name="id" /></p>

<?php if isset($errors['mail']) { echo "<p>$errors[mail]</p>"; } ?>
<p>E-mail: <input type="text" name="mail" /></p>

<p><input type="submit" /></p>
</form>
Hugo
Profil
MilanJ

Nejrozumější je odeslat data do skriptu, který je v jiném souboru, protože ti odpadnou problémy s reloadem stránky. Ten skript to přechroustá a pokud najde chybu, tak zobrazí znovu formulář s označením chyb(y).
MilanJ
Profil
Dík, to bude ono.;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.