Kezdőoldal » Számítástechnika » Weblapkészítés » Submit gomb megnyomása esetén...

Submit gomb megnyomása esetén újratölt a weboldalam, ezzel együtt az összes addig javascript, jQuery formázás eltűnik. Milyen megoldás szolgáltatná azt hogy a formázásaim megmaradjanak?

Figyelt kérdés
Submit gombot üzenetküldéshez használom fel (PHP). A weboldal url-je nem változik az oldalon történő bármely művelet esetén sem. Minden menü alattt lévő "div" (ezzel a levelező "div"-je is) a főoldalt eltekintve rejtve van betöltéskor.

2014. júl. 27. 11:40
 1/8 anonim ***** válasza:
100%

újra tölt, akkor újra tölti a JS -eket is, tehát ha nem bedrótozott, hanem esemény pl. hover -re történik a formázás akkor az elvész.

Ha bedrótozott formázások, akkor ott JS hiba lesz, ezt pedig a böngésző hiba konzoljába tudod megnézni.


DE ha nem szeretnéd hogy újra töltsön, használhatsz jQuery -s ajax megoldást is a form POST -ba küldésére.

2014. júl. 27. 12:17
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
+1 a jQuery + Ajax ötletnek
2014. júl. 27. 15:31
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

A php kódom így néz ki:

if ($_SERVER["REQUEST_METHOD"] == "POST") {

--$name = $_POST["name"];

--$email = $_POST["email"];

}


A form-om:

<form method="post" id="formid" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

--<input type="text" name="name">

--<input type="text" name="email">

--<button id="gombid">Küldés</button>

</form>


Ezt az Ajax-os megoldást találtam neten:

$("#gombid").click(function(){

--var formData = $("#formid").serializeArray();

--var URL = $("#formid").attr("action");

--$.post(URL,formData);

});


Ezzel az ajax-os megoldással is ugynúgy újratölti az oldalam.

Tudnátok egy linket, példát leírni ami segíthet?

2014. júl. 28. 12:49
 4/8 anonim ***** válasza:
Ez szerintem nem ajax, de még utánanézek...
2014. júl. 28. 12:58
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

Arra jutottam, hogy tényleg AJAX, ezért elnézést.


De:

<button> tag: alapból submit gomb! tehát elküldi az űrlapot simán, és nem az AJAXot használja! megoldás: <button type="button" ...>


"Ezt az Ajax-os megoldást találtam neten:

$("#gombid").click(function(){

--var formData = $("#formid").serializeArray();

--var URL = $("#formid").attr("action");

--$.post(URL,formData);

});"


Itt pedig nagyon fontos, hogy ekkor már léteznie kell a gombnak! De ezt így nem tudtam kipróbálni, hanem inkább így csináltam:

function kuldes() {

--var formData = $("#formid").serializeArray();

--var URL = $("#formid").attr("action");

--$.post(URL,formData);

}


és <button ... onclick="kuldes()">

2014. júl. 28. 13:13
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
Érdekes, lefut a függvény amit küldtél (alert-tel ellenőriztem), de a php kód nem mozdul rá.
2014. júl. 28. 14:00
 7/8 anonim ***** válasza:

AJAX-hoz másik PHP-t kéne használni...

Ha ugyanazt akarod használni, ami küldés után dolgozna, és nem szeretnéd újratölteni, akkor az szerintem elég nagy ellentmondás...


De meglátszik, hogy nem tudtam kipróbálni, ezért csak az AJAX küldeésig íram le:


AJAX lényege:

1. elküldesz x adatot y PHP-nak (vagy egyéb szerveroldali scriptnek)

2. dolgozik a script

3. ad egy választ, ami szöveges (sima szöveg, JSON formátum, XML, stb.)

4. feldolgozod JS-ben (JavaScript)


Neked kb. az 1. lépés van csak meg!

A 2.-at úgy kell megoldani, hogy a 3.-at is megoldja!

A 4.-nek meg nézz utána, küldéskor kell gondoskodni róla.

2014. júl. 28. 14:26
Hasznos számodra ez a válasz?
 8/8 A kérdező kommentje:

Köszönöm mindenkinek az eddigi válaszát!

Sikerült összeállítanom netes forrásokból egy PHP Ajax-os megoldást:


Html fájl:

<input id="name" type="text">

<input if="email" type="email">

<button type="button" onclick="kuldes()">Submit</button>


<sript>

function kuldes(){

var nev = document.getElementById("name").value;

var email = document.getElementById("email").value;

if (window.XMLHttpRequest) {

--// code for IE7+, Firefox, Chrome, Opera, Safari

--xmlhttp=new XMLHttpRequest();

} else {

--// code for IE6, IE5

--xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }

xmlhttp.onreadystatechange=function() {

--if (xmlhttp.readyState==4 && xmlhttp.status==200) {

----document.getElementById("válasznakid").innerHTML=xmlhttp.responseText;

--}

}

xmlhttp.open("GET","level.php?name="+nev+"&email="+email,true);

xmlhttp.send();

}

</script>


PHP fájl (level.php)

<?php

$name = $_REQUEST['name'];

$email = $_REQUEST['email'];

mail("emailcim@gmail.com",$targy,$uzenet,"From: $name <$email>\r\n");

?>

<span><?php echo "Ez a válasz üzenet a php fájlból!"; ?></span>


Ezzel kikerültem a submit leütés okozta oldal újratöltési problémám. :)

Már csak azt szeretném tudni, hogy ha php objektumot adok vissza azt hogyan tudom áttenni a javascript kódba? pl:


Választ küldő php fájl:

$z = array("a" => "red", "b" => "green");

<span><?php echo $z; ?></span>


Választ fogadása html fájlban:

/*php-s objektumot feldolgozni tudó fgv v. változó*/ = xmlhttp.responseText;

2014. júl. 30. 00:35

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!