Witam.. Jest to mój pierwszy skrypt w PHP, zresztą prosty jak widać. Problem polega na tym, że gdy w polu formularza wpiszemy wartość np. ujemną i wyświetla nam stosowny komunikat, pola formularza zostają wyczyszczone. Chciałbym tego uniknąć, tak by można poprawić błędną wartość, zachowując pozostałe pola.
Na obecną chwilę skrypt też jest na stronie www.globalexpress.ie
Pozdrawiam serdecznie.
<form action="#cennik#" method="post" id="cennik">
<input type="number" name="a" id="a"/>długość
<input type="number" name="b" id="b"/>wysokość
<input type="number" name="c" id="c"/>szerokość
<div>
<input type="number" name="d" id="d"/>waga
</div>
<div>
<input type="submit" name="submit" id="submit" value="oblicz" />
</div>
</form>
<?php
$_POST['a'];
$_POST['b'];
$_POST['c'];
$_POST['d'];
$komunikat['a'] = '<div id="blad">Twoja paczka jest za długa, </ br></div>';
$komunikat['b'] = '<div id="blad">Twoja paczka jest za wysoka, </ br></div>';
$komunikat['c'] = '<div id="blad">Twoja paczka jest za szeroka, </ br></div>';
$komunikat['suma'] = '<div id="blad">Twoja paczka jest za duża, suma boków powinna być mniejsza niż 300 cm</ br></div>';
$komunikat['dlugosc'] = '<div id="blad">Podałeś nie poprawną długość, długość nie może być ujemna ani równa 0</ br></div>';
$komunikat['wysokosc'] = '<div id="blad">Podałeś nie poprawną wysokość, wysokość nie może być ujemna ani równa 0</ br></div>';
$komunikat['szerokosc'] = '<div id="blad">Podałeś nie poprawną szerokość, szerokość nie może być ujemna ani równa 0</ br></div>';
$komunikat['waga'] = '<div id="blad">Podałeś niepoprawną wagę, waga nie może być ujemna ani równa 0.</ br></div>';
$komunikat['d'] = '<div id="blad">Twoja paczka jest za ciężka. Maksymalnie może ważyć 50 kg.</ br></div>';
function waliduj(){
$suma = $_POST['a']+$_POST['b']+$_POST['c'];
if ($_POST['a'] <= 0){
$walidacja = $komunikat['dlugosc'];
}else{
if ($_POST['a'] > 200){
$walidacja = $komunikat['a'];
}
}
if ($_POST['b'] <= 0){
$walidacja = $komunikat['wysokosc'];
}else{
if ($_POST['b'] > 200){
$walidacja = $komunikat['b'];
}
}
if ($_POST['c'] <= 0){
$walidacja = $komunikat['szerokosc'];
}else{
if ($_POST['c'] > 200){
$walidacja = $komunikat['c'];
}
}
if ($_POST['d'] <= 0){
$walidacja = $komunikat['waga'];
}else{
if ($_POST['d'] > 50){
$walidacja = $komunikat['d'];
}
}
if ($suma > 300){
$walidacja = $komunikat['suma'];
}
return 'true';
}else{
}
}
if (($_SERVER['REQUEST_METHOD'] == 'POST')) {
$walidacja = waliduj();
if ($walidacja == 'true'){
$suma = $_POST['a']+$_POST['b']+$_POST['c'];
if ($suma<300 && $_POST['d']<50){
<div id="sukces">
Twoja paczka może być wysłana
</div>';
}
}
}
?>
Ten post edytował slawak1 16.09.2011, 22:19:18