Kezdőoldal » Számítástechnika » Weblapkészítés » Hogy tudom elérni, hogyha nem...

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?

Figyelt kérdés
2012. okt. 5. 10:20
 1/6 anonim ***** válasza:
Azt szeretnéd, hogy ha elküld egy formot a felhasználó, amin kitöltési hiba van, akkor a kiírja a hibát, visszatöltse a formot, de a már felvitt értékeket ne kelljen megint beírnia a felhasználónak?
2012. okt. 5. 10:35
Hasznos számodra ez a válasz?
 2/6 Drone007 ***** válasza:

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.

2012. okt. 5. 10:50
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
köszönöm a válaszokat. a Javascriptes megoldást hogyan lehetne megcsinálni? tudnál rá egy példát mutatni?
2012. okt. 7. 18:46
 4/6 Drone007 ***** válasza:

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!

2012. okt. 7. 21:14
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:
köszönöm és a php-s megoldás, hogy nézne ki?
2012. okt. 26. 12:26
 6/6 Drone007 ***** válasza:

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!

2012. okt. 26. 23:22
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!