Snažím sa získať hodnotu textového poľa bez toho, aby som prešiel akciami formulára (pretože nemôžem presmerovať na inú stránku alebo aktualizovať aktuálnu).
index.php
do hlavy
<script type="text/javascript">
function send() {
$.ajax({
type:"POST",
url: "script.php",
data: {
fname: document.getElementById("fname").value,
lname: document.getElementById("lname").value
},
success: function callScriptAndReturnAlert() {
var sdata = new XMLHttpRequest();
sdata.onload = function() {
alert(this.responseText);
};
sdata.open("get", "script.php", true);
sdata.send();
}
});
}
</script>
do tela
<button class="myclass" onclick="send();">MyButton</button>
<input type="text" id="fname" placeholder="First name here" />
<input type="text" id="lname" placeholder="Last name here" />
Tlačidlo je pred vstupom iba pre používateľské rozhranie
script.php
$prev = $_SESSION["prev"];
$fname = $_POST["fname"];
$lname = $_POST["lname"];
[....do something....]
echo "You used ".$fname." and ".$lname;
Script.php nedostáva hodnotu vstupov fname a lname.
odpovede:
2 pre odpoveď č. 1Pokúšate sa uskutočniť dva hovory Ajax, keď potrebujete iba jeden.
<script type="text/javascript">
function send() {
$.ajax({
type:"POST",
url: "script.php",
data: {
fname: $("#fname").val(),
lname: $("#lname").val()
},
beforeSend: function(){
alert("Sending");
},
success: function(data) {
//Received data from PHP script
alert(data);
},
error: function(){
alert("Error !");
},
complete: function(){
alert("Done");
}
});
}
</script>
0 pre odpoveď č. 2
$.post(
"script.php", // Your PHP file
{ // The data to pass
"fname" : $("#fname").val(),
"lname" : $("#lname").val()
}
).done(function(data) { // Here your AJAX already finished correctly.
alert(data); // Show what the PHP script returned
});
Na $.ajax()
, $.get()
a $.post()
jQuery metódy slúžia na uskutočňovanie hovorov AJAX a vďaka tomu aj oni už spravujú svoje vlastné XMLHttpRequest objekt.