Autor Zpráva
Darja
Profil
Zdravím,
nevím, co dělám špatně, jednou mi to fungovalo, podruhé už ne... Možná jsem tam něco omylem přepsala, ale nemůžu přijít na to, kde je chyba ...

nejprve si vyberu z nabídky lektorů, kterou mám uloženou v DB...

<form method="post" enctype="multipart/form-data">
<table>
<tr><td><select name="lektor" />
<?
$host="mysql.ic.cz"; $uziv="*****"; $heslo="*****";
if(!mysql_connect($host,$uziv,$heslo)){
echo "Nelze vytvořit spojení s databází!!!";
}
$link=mysql_connect($host,$uziv,$heslo);
mysql_query("set names cp1250");
$db=mysql_select_db("ic_padma_kladno",$link) or die ("Nepovedlo se otevřít databázi");
$query = "SELECT * FROM Tym ORDER BY Poradi";
$result = mysql_query($query, $link) or die(mysql_error());
while ($row=mysql_fetch_array($result)){
echo "<option>".$row["Jmeno"]."</option>"; }
mysql_free_result($result);
mysql_close();

echo "</select></td><td><input type=\"submit\" value=\"Vybrat\" /></td></tr>";
echo "</table>";
echo "</form>";


(tady je kousek skriptu, kde získám proměnnou $jmeno)



Po vybrání lektora se vypíše formulář (kde si mohu vybrat položku, kterou chci změnit)
echo "<form method=\"post\">";
echo "<table><tr><td><input type=\"text\" name=\"jmeno\" value=$jmeno readonly /></td></tr>";
echo "<tr><td><input type=\"submit\" name=\"zmJmeno\" value=\"Upravit jméno\" /></td>";
echo "<td><input type=\"submit\" name=\"zmFoto\" value=\"Změnit portétovou fotku\" /></td>";
..... + další možnosti

echo "</td></tr>";
echo "</table>";
echo "</form>"; 


Tak, a teď když kliknu na položku změnit jméno, nestane se nic. Správně by se měl objevit další formulář, kde se mi vypíše původní jméno, které mohu přepsat. Prostě if($zmJmeno) vyhodnotí jako false:

if ($zmJmeno){
 echo "<form method=\"post\" ><table><tr><td><input type=\"text\" name=\"jmeno\" value=$jmeno readonly /></td><td></td></tr><tr><td><input type=\"text\" name=\"celeJmeno\" value=\" ";
    $host="mysql.ic.cz"; $uziv="*****"; $heslo="*****";
    if(!mysql_connect($host,$uziv,$heslo)){
      echo "Nelze vytvořit spojení s databází!!!";
      }
    $link=mysql_connect($host,$uziv,$heslo);    mysql_query("set names cp1250");
    $db=mysql_select_db("ic_padma_kladno",$link) or die ("Nepovedlo se otevřít databázi");
    $query = "SELECT * FROM Tym ORDER BY Poradi";
    $result = mysql_query($query, $link) or die(mysql_error());
    $num = mysql_num_rows($result);
    while ($row=mysql_fetch_array($result)){
     if ($row["Prezdivka"]==$jmeno){
      echo $row["Jmeno"];}
      }
    mysql_free_result($result); 
    mysql_close();  
  echo " \" /></td><td><input type=\"submit\" value=\"Uložit\" /></td></tr></table></form> ";


a konečné zpracování, ke kterému se ani nedostanem

   if ($celeJmeno){    
    $host="mysql.ic.cz"; $uziv="*****"; $heslo="*****";
    if(!mysql_connect($host,$uziv,$heslo)){
      echo "Nelze vytvořit spojení s databází!!!";
      }
    $link=mysql_connect($host,$uziv,$heslo);
    mysql_query("set names cp1250");
    $db=mysql_select_db("ic_padma_kladno",$link) or die ("Nepovedlo se otevřít databázi");
    $query = "UPDATE Tym SET Jmeno='$celeJmeno' WHERE Prezdivka='$jmeno'";
    $result = mysql_query($query, $link) or die(mysql_error());
    mysql_close();   }  }


No a stejně tak nefunguje nic ostatního :-( Nevíte, co by s tím mohlo být?
Díky.
panther
Profil
Darja:
místo if ($zmJmeno) použij
if (isset($_POST['zmJmeno']))
Darja
Profil
to nepomohlo :-(
jenikkozak
Profil
Darja:
Ale ano, mělo by. Pokud se ti skutečně předchozí formulář zobrazí a odešle, není důvod, aby se ta podmínka měla vyhodnotit jako false. Pokud ale nepoužíváš IE a neodesíláš ten formulář Enterem. V IE se totiž neodesílá atribut name tlačítka, pokud na něj neklikneš.
Darja
Profil
mě vždycky napadne řešení poté, co sem ten dotaz odešlu, nezávisle na tom, jak dlouho nad tím předtím přemýšlím :-D .... podmínku
if($lektor)
(tady do skriptu jsem ji omylem nedala, ale u sebe ji mám...) bych asi měla ukončit ještě předtím, než začnu vyhodnocovat
if($zmJmeno)
, že?
Darja
Profil
ještě mám jeden problém...

if (isset($_POST['$zmFoto'])){     
 echo "<form method=\"post\" enctype=\"multipart/form-data\" >
 <table><tr><td><input type=\"text\" name=\"jmeno\" value=$jmeno readonly /></td><td></td></tr>
 <tr><td><input type=\"file\" name=\"foto\" accept=\"lektori-foto/*\", text/plain\" /></td>
 <td><input type=\"submit\" name=\"nahrat\" value=\"Nahrát\"></td></tr></table></form>" ; 
$jmenoF = $_POST["jmeno"];
}


v proměnné $jmeno je uložena hodnota např. "Anna" (
<input type=\"text\" name=\"jmeno\" value=$jmeno readonly />
, tj. zde value="Anna") a po kliknutí na tlačítko nahrát je proměnná $jmeno prázdná.
Alphard
Profil
Darja:
Moc se mi nezdá ta podmínka if (isset($_POST['$zmFoto'])) konkrétně proměnná v apostrofech.
v proměnné $jmeno je uložena hodnota např. "Anna"
Opravdu, nebo to jen přepokládáte? Co je v print_r($_POST);?
Darja
Profil
Omlouvám se, překlep. Samozřejmě má být
if (isset($_POST['zmFoto']))
. (Ve svém skriptu jsem to měla dobře).
Opravdu, zkoušela jsem vypsat pomocí echo před zmáčknutím tlačítka a vypsalo se mi Anna, a pak po zmáčknutí a nevypsalo se nic.
Alphard
Profil
Darja:
Omlouvám se, překlep. Samozřejmě má být
Už po druhé :-) Kódy sem vkládané prosím kopírujte z těch skutečných. Přepisování je k ničemu, některé chyby se skryjí a jiné vytvoří.

zkoušela jsem vypsat pomocí echo před zmáčknutím tlačítka a vypsalo se mi Anna
Co jste zkoušela vypsat? Vždyť v echo je celá tabulka tabulka, tak to snad vidíte.

Zkusila jste to print_r($_POST);?
Darja
Profil
print_r($_POST);
mi dává
Array ( [jmeno] => Anna [zmFoto] => Změnit portétovou fotku [NRodr1] => 1 [NRodr2] => 1 [NRcert] => 1 )
Alphard
Profil
Darja:
[jmeno] => Anna
Takže $_POST['jmeno'] nemůže být po odeslání prázdné. Zkontrolujte si překlepy.
Darja
Profil
Asi to zkusím předělat znovu, překlepy hledám už dost dlouho a nemůžu nic najít. Zatím díky.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0