提交表单而不刷新页面并将输出加载到html中
submit form without refresh page and load output into html
我想提交一个表单信息到另一个php脚本不离开页面,并显示在同一页面的输出。
这是我的ajax函数加载php输出html而不离开页面。如果表单有提交按钮,它就不会这么做。它只适用于普通的可点击按钮。$('#btnLoad').click(function(){
$.ajax({
type: 'POST',
url: 'page1.php',
success: function(data){
if(data != null) $('#content').text(data);
}
});
});
问题是,我需要发送POST变量到我的PHP脚本,但当我这样做,它去我的PHP脚本页面。我只想让脚本接收POST变量,运行脚本,然后在我的HTML页面中显示输出。
这是不去PHP脚本页面的脚本。我不知道PHP脚本是否运行这个函数。
$(function() {
$('form#myForm').on('submit', function(e) {
$.post('page1.php', $(this).serialize(), function (data) {
}).error(function() {
});
e.preventDefault();
});
});
我如何将这两个脚本合并为一个,通过POST提交变量,运行脚本并在我的HTML页面中显示输出?
结合Ajax
$("#btnLoad").click(function (e) {
e.preventDefault()
$.ajax({
type: "POST",
url: "page1.php",
data: $('#myForm').serialize(),
success: function (msg) {
$("#thanks").html(msg);
},
error: function (msg) {
$("#error").html(msg);
}
});
});
HTML显示成功消息
<div id="thanks"></div>
HTML显示错误信息
<div id="error"></div>
PHP Server Side
<?php
if (isset($_POST['submit'])) { //assuming you have input with name="submit"
//Do what ever you like to do next
//If everything good
echo "<strong>Success!</strong> This Is Success Thanks Message. If everything go exactly as Planned.";
} else {
echo "<strong>Error!</strong> This Is Error Message. If anything goes south.</div>";
}
?>
编辑:OP要求在jQuery模态对话框中显示消息
在Ajax成功调用后,尝试如下
success: function(msg) {
$("#thanks").html(msg);
$("#modalId").dialog({
autoOpen:true,
width:500,
title:"Your Error Message",
},
误差函数
也是一样注意:我还没有测试过这个,所以不确定它是否会开箱工作或需要任何调试
为什么不将提交按钮替换为普通按钮呢?你可以在jQuery中做的是:
$(formSelector).on('submit',function (e) {
e.preventDefault()
//Place your ajax here.
})
你可以这样做
$('#btnLoad').click(function(){
$.ajax(url,
{
data: { variable1: $("#variable1").val(), variable2: $("#variable2").val() },
type: "POST",
success: function(data) {
if(data != null) $('#content').text(data);
}
});
});
如果我需要通过ajax发送数据,我通常不使用表单,我只使用JS
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 将“加载更多”添加到从Google电子表格中通过$.getJSON接收的数据输出中
- phantomjs - 在页面加载后执行Javascript函数,然后输出新的更改
- 刷新 php 输出而不重新加载页面
- 谷歌网络应用程序加载脚本不适用于HTML输出
- 分别设置输出文件夹和文件 url;带有 Django 的 Webpack 文件加载器
- 创建一个数组并输出其代码定义以进行预加载
- 如何在页面重新加载后输出jsignature
- 尝试将json输出加载到谷歌地图中
- 隐藏验证输出标记(✘)在加载/重新加载页面时隐藏符号
- 如何在不刷新、显示输出、重新加载表单、冲洗和重复的情况下提交表单
- 加载PHP输出的JS
- Div高度在页面加载时输出为0
- 提交表单而不刷新页面并将输出加载到html中
- 重新加载jQuery AJAX会复制JSON输出结果
- 如何不缓存加载器输出
- ASP.NET MVC4 显示模式不加载 TypeScript 输出
- 当从javascript文件加载css时,我应该如何保持html输出隐藏,直到css文件被加载
- 通过AJAX加载页面时输出Javascript变量