Hogy tudom elérni, hogyha nem töltenek ki minden mezőt ami egy adatbázisba menne, akkor azt visszaírja és ne kelljen újra beírni?
Két lehetőséged is van.
1. php megoldás: Az űrlap kijelzése előtt már létrehozod azt a tömböt, ami a válaszokat tartalmazza, persze az értékek üresek/alapértelemzés szerintiek. Az űrlap értékeit ez alapján a tömb alapján töltöd ki. Ha submit történik az adat-tömböt feltöltöd a beírt értékek szerint, és vizsgálod, hogy jók-e, ki van-e töltve mind. Ha hiányosak, vagy nem megfelelők az értékek, akkor az űrlap újra kiírásra kerül, de mivel a tömb értékei az előzőleg elküldöttek szerint változtak, így a megfelelően kitöltött értékek már be lesznek írva.
2. Javascript megoldás (talán egyszerűbb): Submit helyett a form elküldés gombja egy javascript függényt hív meg, ami végigellenőrzi a form mezőit. Ha mindent rendben talál, akkor űrlap submit, ha nem, akkor hibaüzi. Mivel ilyenkor nem történik oldal újratöltődés (csak submit esetén), a beírt értékek a helyükön maradnak.
Egy gyors példa jquery-vel:
<script>
function formcheck() {
d1 = $("#adat1").val();
d2 = $("#adat2").val();
if ((d1 != "") && (d2 != "")) {
$("#sendingForm").submit();
} else {
alert("Töltsön ki minden mezőt!");
}
}
</script>
<form method="post" id="sendingForm" action="action.php">
Adat1: <input type="text" name="adat1" id="adat1" /><br />
Adat2: <input type="text" name="adat2" id="adat2" /><br />
<input type="button" value="Elküldés" onclick="formcheck()" />
</form>
Ez egy egyszerű példa, ezt természetesen bővíteni és formázni is kell, de alapnak megteszi. A valódi adatfeldolgozás csak submit után hajtódik végre, és az action.php végzi. Persze ez elhagyható, és akkor ugyanebben a fájba építhető a feldolgozás is, egyszerűen vizsgálni kell, hogy érkezik-e post request.
A javascript függvény is bővíthető, és kiegészíthető, valós adatvizsgálattal, több adat vizsgálatával.
Remélem segítettem. Sok sikert!
Php megoldás:
<?php
$adatok = array("","");
if (isset($_POST["send"]) {
$adatok[0] = $_POST["adat1"];
$adatok[1] = $_POST["adat2"];
if (($adatok[0] == "") || ($adatok[1] == "")) {
echo "<p>Töltsön ki minden mezőt!</p>";
} else {
// adatfeldolgozás, töltés adatbázisba
header("location: nextpage.php");
// ha a header már el van küldve, akkor inkább egy js hívással irányítsuk át az oldalt:
echo "<script>self.location = 'nextpage.php';</script>";
}
}
?>
<form method="post">
Adat1: <input type="text" name="adat1" value="<?php echo $adatok[0]; ?>" /><br />
Adat2: <input type="text" name="adat2" value="<?php echo $adatok[1]; ?>" /><br />
<input type="submit" name="send" value="Elküldés" />
</form>
Ebben a példában az űrlap elküldésre kerül mindenképp, vagyis az oldal újratöltődik, és a program az elküldött ($_POST) adatokat vizsgálja meg. Hiba esetén az oldal újra megjelenik, legfelül a hibaüzenettel, alatta az űrlappal. Sikeres küldéskor a program egy másik oldalt hív meg. Ez persze megoldható úgy is, hogy az űrlapot is beágyazzuk a vizsgálatba, és siker esetén más tartalom jelenik meg, ami szintén ebben a fájlban van, ahogyan az űrlap is.
A lehetőségek száma (majdnem) végtelen :)
Sok sikert!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!