Kezdőoldal » Számítástechnika » Programozás » Hogyan ellenőrizzem hogy a...

Hogyan ellenőrizzem hogy a textareába írtak e vagy sem? (részletek a leírásbhan)

Figyelt kérdés

Szeretném leellenőrizni lehetőleg ajaxban hogy írtak e a comment formba.

Ha nem, akkor elküldéskor írja ki a program,töltés nélkül, a comment form alá, hogy adj meg valami szöveget,ezt pedig valami piros háttérrel tegye meg.

Ha sikeres a szöveg bevitel,írja ki hogy a küldés sikeres.

Wordpress comment formról van szó,más comment plugint nem akarok használni mert van pár függvény ami a jelenlegihez kötődik.

Jelenleg phpban ellenőrzi le a word press van e comment vagy nincs,ami külön oldalon nyílik meg s nem szép.



2013. júl. 24. 17:17
1 2
 1/15 anonim ***** válasza:

Nem túl bonyolult, javascript kell hozzá (az ajax csak egy technika, nem nyelv).

Én úgy szoktam csinálni hogy a form HTML tag, onsubmit propertyjébe kerül egy javascript függvényhívás. Ez a függvény dönti majd el hogy volt-e szöveg a textarea-ban vagy sem. Kóddal egyszerűbb lesz megérteni. Itt a html rész:

<form method="POST" action="/test/" onsubmit="return handle_form_send(this);">

<textarea name="szovegdoboz">

2013. júl. 24. 18:20
Hasznos számodra ez a válasz?
 2/15 anonim ***** válasza:

(Bocsi, kettévágtam véletlenül)

<input type="submit">

</form>

Az onsubmit-ban azért kell visszaadni a meghívott függvény visszatérési értékét, mert ha az false, akkor nem megy végbe a POST, és nem töltődik újra az oldal (és kiírhatod helyette a hibaüzeneted). A függvény argumentumául adott this majd a kitöltött form-ra mutat, így a függvényből könnyen el lehet érni az inputokat.

A JS így néz ki:

function handle_form_send(_form){

if (_form.szovegdoboz.value == ""){

alert('Ures textarea');

return false;

}

return true;

}


A textarea-nek name-t adtam a html részben, ezért lehet így elérni az if()-ben. A többi szerintem már egyértelmű innen. Csak arra kell figyelni hogy térjen vissza a függvény vmilyen logikai értékkel.

A végtelenségig lehet még cifrázni. Ha nem akarod egyáltalán hogy újratöltődjön az oldal, és a POST is ajax-szal menjen le, akkor az onsubmitnál meghívott függvény egyszerűen mindig térjen vissza false-al, és kézzel elvégzed az ajax kérést.

2013. júl. 24. 18:23
Hasznos számodra ez a válasz?
 3/15 A kérdező kommentje:
Ilyesmi kéne csak nem alertben hanem a comment divjébe kéne kiirati
2013. júl. 24. 21:31
 4/15 anonim ***** válasza:

Gondoltam hogy nem alert()-be, csak példának írtam oda. Ha megvan a div amiben a hibaüzenetet meg akarod jeleníteni, akkor egyszerűen beleírod az elágazás igaz ágába (ha az én kódomat tekintjük).

Ha nem használsz semmilyen javascript frameworköt, akkor pl így:

var div_hibauzenet = document.getElementById("hibauzenet_doboza")

div_hibauzenet.innerHTML = "Üres mező!";


Ha használsz, pl jQuery-t, akkor sokkal egyszerűbb:

$("#hibauzenet_doboza").html("Hiba");

2013. júl. 24. 21:59
Hasznos számodra ez a válasz?
 5/15 A kérdező kommentje:

Így gondoltad?

Mert így nekem nem működik:S

<html>

<head>

<script src=" [link]

<script>

function handle_form_send(_form){

if (_form.szovegdoboz.value == ""){


return false;

}

return true;

$("#hibauzenet_doboza").html("Hiba");


}


</script>

<title>gyak</title>

</head>

<body>

<form method="POST" onsubmit="return handle_form_send(this);">

<textarea name="szovegdoboz"></textarea><input type="submit"> <br>

<div id="hibauzenet_doboza"></div>

</form>

</body>

</html>

2013. júl. 24. 22:10
 6/15 anonim ***** válasza:

Nemnem. A return után felesleges tenni akármit is, addigra már visszatértünk a függvényből. A hibát akkor akarod kiírni amikor üres a textarea, tehát az if() azon ágába kell, amibe akkor ugrunk, ha 0 hosszú ("") string a textarea értéke. Kóddal tehát így:


function handle_form_send(_form){

if (_form.szovegdoboz.value == ""){

$("#hibauzenet_doboza").html("Hiba");

return false;

}

return true;

}

2013. júl. 24. 22:50
Hasznos számodra ez a válasz?
 7/15 A kérdező kommentje:
Á értem olvastam valami fadeout() függvényről azt hogy kell használni?
2013. júl. 24. 23:11
 8/15 anonim ***** válasza:

A hozzászólásodból úgy vélem, hogy neked még kicsit nehéz lenne a natív AJAX megoldás, ezért inkább a jQuery-t ajánlanám.

Ezt ajánlom figyelmedbe:

[link]

Így el tudod küldeni a szükséges adatokat a feldolgozónak, ami már neked meg is van. A feldolgozott adatokat pedig elkapod, és utána kliens oldalon azt csinálsz vele, amit csak akarsz.


Az előző válaszolók megoldása is használható, de védelmi szempontból semmit sem ér, mivel a szerver ezekben a megoldásokban nincs belekeverve az ellenőrzésbe.

2013. júl. 25. 00:25
Hasznos számodra ez a válasz?
 9/15 A kérdező kommentje:

Picikét.

Olyan szinten vagyok, hogy ha látok egy kódot, kb tudom hol kell módosítani, hogy elérjem azt ami nekem kell,pl magyarosítás terén,de magamtól, még sosem sikerült olyan kódot írni,ami működik is:D

A feldolgozó oldal sajnos php.

2 okból nem tudom lecserélni.

1:

A felhasználóknak regisztrál kell, hogy hozzá szólhassanak,ehhez sql parancsok kellenek,amihez én sajnos semmit nem konyítok jelenleg:S

Az előző válaszok elég jók,végülis csak azt vizsgáljuk van e benne szöveg,többit már a php feldolgozó végzi,sajnos újra töltéssel.

De legalább meg van írva a védelme és az sql-hez való kapcsolódás.

2:

Hatalmas munka lenne olyan feldolgozó oldalt írni ami biztonsági szempontból is korrekt és el látja a kívánt feladatot,vagy is hogy újratöltés nélkül elküldi az üzentet.

2013. júl. 25. 09:25
 10/15 anonim ***** válasza:
A feldolgozó már meg van azzal nem kell semmit kezdened. Jquery post( ). függvénnyel simán elküldöd az adatokat a feldolgozott eredményt belöltöd oda ahová szeretnéd.
2013. júl. 25. 20:24
Hasznos számodra ez a válasz?
1 2

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!