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?
ú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.
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?
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()">
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.
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;
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!