jquery php 提交表单,php – 使用jQuery提交表单

如果之前已经回答过这些道歉(我在搜索档案时找不到答案)

我有一个受密码保护的页面:

if($_POST['pw'] == 'pw')

{

//Page content

} else

{

//Display password form

}

?>

在页面内容中,我有另一个表单,我想使用jQuery提交,并具有以下代码:

var dataString = $('input#input1').val();

$(function() {

$('#submit').click(function()

{

$.ajax({

type: 'POST',

url: 'p2.php',

data: dataString,

dataType: html,

success: function(data2) {

$('#testResult').html(data2);

}

});

return false;

});

});

Input 1

但是,单击submit然后将表单发送到p1.php?input1 = test(即,数据字符串正在发送到p1.php,而不是p2.php).如果我编辑代码并删除dataType:html和data2的2个引用,那么这不会发生(事实上,没有任何反应,所以我假设jQuery正在将数据提交到表单).我还将类型更改为’GET’,因为同一页面上的2个POST请求导致了问题,但这并没有改变结果.

从p2.php(即data2)获取信息并显示它我错过了什么?!

编辑

感谢评论指出一个拼写错误,我已经将dataType:html更改为dataType:’html’ – 这现在不会导致页面重定向到p1.php?input1 = test,但是再一次,它没有做任何事情(当它应该仍然返回data2的值时)

编辑2

我已经更新了代码,所以dataString现在是:

var dataString = $('input#input1').val();

dataString = 'var1='+dataString;

但这没有任何区别

为了澄清,我的p2.php只包含以下内容:

echo "

HELLO!

";

?>

编辑3

我对Damien建议的代码进行了修改;我得到“工作!”的警报但是仍然没有从p2.php返回任何内容,并且没有任何内容插入到#testResult div中.

解决方法:

$(function() {

$('#submit').click(function()

{

var dataString = $('#form1').serialize();

$.ajax({

type: 'POST',

url: 'p2.php',

data: dataString,

success: function(data2) {

alert('works!'); // ADDED AFTER UPDATE

$('#testResult').html(data2);

},

/* ADDED AFTER UPDATE */

error:function(obj,status,error)

{

alert(error);

}

});

return false;

});

});

编辑:

在p2.php中:

var_dump($_POST['pw']);

?>

在p2.php中,您需要输出(例如,使用echo)您希望在ajax成功调用中作为“data2”返回的内容.

更新:

由于您的Ajax请求成功触发,这意味着您的帖子未正确传递,或者您没有输出任何内容.我重新看了你的代码,我看到了这个:

这意味着你正在获取错误的$_POST变量!

做这个:

>因为您要发送名称=“input1”,所以在p2.php中尝试:

if(isset($_POST['input1'])

{

echo $_POST['input1'];

}

else

{

echo 'No post variable!';

}

在你的jquery成功:

success: function(data2) {

alert(data2);

$('#testResult').html(data2);

},

>如果按照字面意思执行,那该工作就可以了.在遥远的可能性它将无法工作,忘记AJAX,删除JavaScript并做一个正常的帖子提交与p2.php作为你的形式的行动:)

标签:jquery,php

来源: https://codeday.me/bug/20190709/1416924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用jQuery validate+artdialog+jquery form实现弹出表单的步骤: 1. 引入jQuery库、jQuery validate插件、artdialog插件和jquery form插件。 2. 在HTML中添加一个form表单,并在表单中添加需要验证的表单元素。 3. 使用jQuery validate插件对表单进行验证,并在验证通过后使用artdialog插件弹出表单。 4. 在artdialog中添加表单元素,并使用jquery form插件实现ajax无刷新提交表单。 下面是一个示例代码: ```html <!-- 引入jQuery库 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <!-- 引入jQuery validate插件 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery-validate/1.19.3/jquery.validate.min.js"></script> <!-- 引入artdialog插件 --> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/art-dialog/7.0.3/dialog-min.css"> <script src="https://cdn.bootcdn.net/ajax/libs/art-dialog/7.0.3/dialog-min.js"></script> <!-- 引入jquery form插件 --> <script src="https://cdn.bootcdn.net/ajax/libs/jquery.form/4.3.0/jquery.form.min.js"></script> <!-- 在HTML中添加一个form表单 --> <form id="myForm"> <label for="name">姓名:</label> <input type="text" id="name" name="name" required><br> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required><br> <label for="message">留言:</label> <textarea id="message" name="message" required></textarea><br> <button type="submit">提交</button> </form> <script> // 使用jQuery validate插件对表单进行验证 $('#myForm').validate({ rules: { name: 'required', email: { required: true, email: true }, message: 'required' }, messages: { name: '请输入姓名', email: { required: '请输入邮箱', email: '请输入正确的邮箱格式' }, message: '请输入留言' }, submitHandler: function(form) { // 在验证通过后使用artdialog插件弹出表单 var dialog = dialog({ title: '提交表单', content: $('#myForm'), okValue: '提交', ok: function() { // 使用jquery form插件实现ajax无刷新提交表单 $('#myForm').ajaxSubmit({ url: 'submit.php', type: 'post', success: function(responseText, statusText, xhr, $form) { alert('提交成功'); dialog.close(); }, error: function() { alert('提交失败'); } }); return false; }, cancelValue: '取消', cancel: function() {} }); dialog.showModal(); } }); </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值