Witam mam dwa problemu z poniższym kodem tzn.
1. Chciałbym aby zapisane wartości w input-ach były zapamiętywane, ponieważ teraz zwraca wartość " <br /><b>Notice</b>: Undefined variable: name_check in".
2. Jeżeli długość domeny jest krótsza niż 5 znaków to zwraca błąd ale tylko przy pierwszym inpucie, a chciałbym aby błąd walidacji był przy każdym z inputów.
<?php require_once "connect.php"; $connect = @new mysqli($host, $db_user, $db_password, $db_name); if(http://www.php.net/isset($_POST['send'])) { $all_ok=true; $id = $_POST['id']; $domain_name = $_POST['domain_name']; foreach ($domain_name as $value) { if (http://www.php.net/strlen($value)<5) { $all_ok=false; $_SESSION['e_name']="Wpisana domena jest zbyt króka."; } } $_SESSION['fr_name'] = $value; if ($all_ok==true) { $count = http://www.php.net/count($id); for($i=0;$i<$count;$i++) { $connect->query('UPDATE domains SET domain_name="'.$domain_name[$i].'" WHERE id='.(int)$id[$i].''); } $_SESSION['well_done']=true; http://www.php.net/echo "udana walidacja"; } } ?> <style> .error { color:#cc0000; margin-top: 5px; margin-bottom: -5px; font-size:12px; } </style> <form method="POST" action=""> <table> <?php $result = $connect->query("SELECT * FROM domains"); $how_nick = $result->num_rows; if ($how_nick != 0) { while($data = $result->fetch_assoc()) { ?> <tr> <td>Nazwa Domeny:<br> <input type="text" value="<?php if (http://www.php.net/isset($_SESSION['fr_name'])) { http://www.php.net/echo $_SESSION['fr_name']; http://www.php.net/unset($_SESSION['fr_name']); } else { http://www.php.net/echo $name_check; } ?>" name="domain_name[]"><br /><?php if (http://www.php.net/isset($_SESSION['e_name'])) { http://www.php.net/echo '<div class="error">'.$_SESSION['e_name'].'</div>'; http://www.php.net/unset($_SESSION['e_name']); } ?></td> <td><input type="hidden" name="id[]" value="<?php http://www.php.net/echo $data['id'];?>"/></td> </tr> <?php }} ?> </table> <br /><center><input class="button" type="submit" name="send" value="Zapisz"></center> </form>
ad1)
Ja tam nie wiem o co ci chodzi, ale $name_check widze tylko raz w kodzie, o tu
echo $name_check;
Nigdzie tej zmiennej nie definiujesz wiec nic dziwnego ze nie dziala. Z powietrza sie nie wezmie...
Jak chcesz cos pamietac miedzy stronami to albo masz to zapisac w sesji i potem z sesji pobrac, albo przesylac formem jako pole ukryte (hidden)
ad2)
Jak chcesz miec kilka bledow to zapisuj te bledy w tablicy a nie jak teraz nadpisujesz ciagle ten sam index.
A zdjecia jak wkladasz to wkladaj tak, bysmy je widzieli np. umieszczaj je w publicznych zasobach a nie dostepnych tylko dla ciebie
ps: przenosze na przedszkole i przez pewien czas sam zakladaj tam tematy
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)