Reputation: 236
I am trying to use Jquery Ajax to submit a simple form but the page looks to reload after I hit submit, the form values are being shown in the url string and the post variables never make it to the php page. It looks like it's being treated as a GET or something.
Form is as follows:
<form id = "textform">
Sent To: <input type="tel" name="number" id="name" placeholder="+1 999 999 9999" required>
<br>
<br>
Message:<textarea name="message" form="textform" placeholder="Enter text message here..." required></textarea>
<br>
<br>
<input type="submit" value="Submit">
</form>
Ajax code is as follows:
<script>
$("textform").on("submit",function(e){
e.preventDefault();
let number = $(this).find("[name='number']").val();
let message = $(this).find("[name='message']").val();
$.post('/aws/sendtext.php', { number: number, message : message}),
function(returnedData){
document.getElementById("result").innerHTML = returnedData;
}).fail(function(){
document.getElementById("result").innerHTML = "Failed";
});
});
</script>
Not sure why data isn't coming from the form and it still gets treated as a GET.
UPDATE-Added order of html tags below:
<?php
?>
<html>
<head>
<title>
</title>
</head>
<body>
<div>
<form>
</form>
</div>
<div>
</div>
<script>
</script>
</body>
</html>
Upvotes: 0
Views: 51
Reputation: 1595
You're not capturing the form in your jQuery, because you are using $("textform")
instead of $("#textform")
. That makes the form submits as default, with a GET method (since you didn't declare it in the <form>
tag).
So, it would look something like this:
$("#textform").on("submit",function(e){
e.preventDefault();
let number = $(this).find("[name='number']").val();
let message = $(this).find("[name='message']").val();
$.post('/aws/sendtext.php', { number: number, message : message})
.done(function(returnedData){
document.getElementById("result").innerHTML = returnedData;
}).fail(function(){
document.getElementById("result").innerHTML = "Failed";
});
});
and it should work properly
JSFiddle: http://jsfiddle.net/79t2bem1/8/
Upvotes: 1