道歉,如果这已经回答过了(当我搜索的档案我无法找到答案)形式提交使用jQuery
我有受密码保护的网页:
<?php
if($_POST['pw'] == 'pw')
{
//Page content
} else
{
//Display password form
}
?>
在该页面的内容,我有另一种形式,这是我想使用jQuery提交,并有下面的代码:
<script type='text/javascript'>
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;
});
});
</script>
<form name='form1' id='form1' action=''>
<fieldset>
<label for='input1' id='input1_label'>Input 1</label>
<input type='text' name='input1' id='input1' size='30' />
<input type='submit' value='Update/reset' id='submit' class='buttons' />
</fieldset>
</form>
<div id='#testResult'></div>;
然而,点击提交,然后发送到p1.php形式输入1 =测试(即数据字符串正在发送到p1.php,而不是p2.php)。如果我编辑代码并删除dataType:html
和data2
的2个引用,则不会发生(事实上,没有任何反应,所以我假定jQuery将数据提交给表单)。我也将type
更改为'GET',因此在同一页上的2个POST请求导致问题,但这并未改变结果。
我错过了什么从p2.php获取信息(即data2
)并显示它?
编辑
感谢评论指出一个错字,我已经改变了dataType: html
到dataType: 'html'
- 这个现在不会导致页面重定向到p1.php输入1 =测试,但再次? ,它不会做任何事情(当它仍然应该返回的data2
值)
EDIT 2
我已经更新代码,以便dataString
现在是:
var dataString = $('input#input1').val();
dataString = 'var1='+dataString;
但是这并没有什么不同
为了澄清,我只是p2.php包含以下内容:
<?php
echo "<p>HELLO!</p>";
?>
编辑3
我所做的更改我的代码由Damien在下面提出;我收到“作品”的警报!但似乎没有任何东西从p2.php返回,并且没有任何内容插入到#testResult
div中。
当然,它应该是'dataType:'html' '?你想说它的值是字符串'html'而不是名为'html'的变量的值。 – 2012-01-18 11:48:46
谢谢 - 我编辑的问题反映了这一点! – ChrisW 2012-01-18 11:52:09
从您对发生的事情的描述中,听起来像默认表单操作正在触发,而不是您绑定到按钮的单击事件的代码。 – psynnott 2012-01-18 11:53:56