我有以下代码,我希望用它来提交表单而不重新加载页面,但它重新加载整个页面,当在控制台中检查时,script.php页面也没有被执行。
index.php页面上的代码
<script>
$(function() {
$(".submit").click(function() {
var name = $("#name").val();
var dataString = 'name=' + name;
console.log(dataString);
$.ajax({
type: "POST",
url: "script.php",
data: dataString,
success: function() {
$('#result').html(response);
}
});
return false;
});
});
</script>
<form method="post" name="form">
<input id="name" name="name" type="text" />
<input type="submit" value="Submit" class="submit" />
</form>
<div id="result"></div>
script.php页面上的代码
<?php
$name=$_POST['name'];
echo $name;
?>
任何人都可以告诉我如何在不重新加载页面的情况下提交表单,并在index.php页面上显示script.php页面的结果
答案 0 :(得分:0)
更新你的功能。在函数中传递事件对象。并使用event.preventDefault()来阻止默认的提交操作。
$(".submit").click(function(e) {
e.preventDefault();
答案 1 :(得分:0)
试试这个
<script>
$(function() {
$(".submit").click(function(event) {
event.preventDefault();
var name = $("#name").val();
var dataString = 'name=' + name;
console.log(dataString);
$.ajax({
type: "POST",
url: "script.php",
data: dataString,
success: function() {
$('#result').html(response);
}
});
return false;
});
});
或强>
<input type="button" class="submit" />Submit
答案 2 :(得分:0)
请勿混用表单submit
和按钮click
。
如果您是click
button
事件,请使用type="button"
,如果您正在执行$("form").submit()
,请使用type="submit"
。
同时检查
$(".submit").click(function(e) {
e.preventDefault();
并检查您的ajax
帖子data
,执行
$.ajax({
type: "POST",
url: "script.php",
//changes made here
data: { name: $("#name").val()},
//changes made here. you have not written response
success: function(response) {
$('#result').html(response);
}
});
答案 3 :(得分:0)
您需要将script.php页面中的数据发送回index.php页面。为此甩出一点点ajax:
$.ajax({
type: "POST",
url: "script.php",
data: "datastring",
dataType: "json",
success: function(dataType){
$("#result").html(dataType);
}
});
在你的script.php中:
<?php
$name=$_POST['name'];
echo json_encode($name);
?>
答案 4 :(得分:0)
您应该聆听表格click
,而不是收听输入的submit
事件。
<script>
$(function() {
$("#name-form").on('submit', function(e) {
e.preventDefault(); // prevent form submission
var name = $("#name").val();
var dataString = 'name=' + name;
console.log(dataString);
$.ajax({
type: "POST",
url: "script.php",
data: dataString,
success: function(response) {
$('#result').html(response);
}
});
});
});
</script>
<form id="name-form" method="post" name="form">
<input id="name" name="name" type="text" />
<input type="submit" value="Submit" class="submit" />
</form>
<div id="result"></div>