我对ajax的耐心消失了。不管怎样都不能搞定这个。说实话,我没有在DIV之外尝试过这个,因为意图是专门使用AJAX加载并将表单发布到所述DIV范围内的页面。
非常感谢你们对即将发生的事情的进步。
#contentmainpane是一个DIV。我有......
if (isset($_POST['l'])) {
echo $_POST['l']; }
else {
echo 'nope'; }
...在CART页面中加载正常,但没有收到来自BOOK页面的帖子(所以我在#contentmainpane DIV中的CART.PHP上得到了回应)。 以下是令人讨厌的BOOK页面代码:
<form id="form1" method="POST">
<input id="l" name="l" size="45" type="text" value="book">
<input id="submit" name="submit" value="save" type="submit">
</form>
<script>
$('#form1').submit(function(event){
event.preventDefault();
var book = $('#book').serialize();
var cart = '/content/pages/cart.php';
var formdata = {"book": book}
$.ajax({
type: "POST",
url : "/content/pages/cart.php"
data: formdata,
success: function(msg){
$("#contentmainpane").load(cart);
}
});
});
</script>
答案 0 :(得分:2)
我注意到你正在序列化一个ID为#Book的表单,但你的html没有显示#book的ID ...另外,你需要一个逗号后面的URL
试试这个
$('#form1').submit(function(event) {
event.preventDefault();
var book = $('#form').serialize();
var cart = '/content/pages/cart.php';
$.ajax({
type: "POST",
url: "/content/pages/cart.php",
data: book,
success: function() {
$("#contentmainpane").load(cart);
}
});
});
答案 1 :(得分:2)
您的data
必须是具有值l
的现有密钥的对象。
由于您要求$_POST
值为'l',因此必须传递带有键'l'的数据对象。从您的代码中,您在AJAX调用中传递的变量formdata
目前是{ 'book' : book}
。
相反,它必须是{ 'l' : book }
OR,在您的PHP代码中
if(isset($_POST['book'])){...
答案 2 :(得分:1)
您可以使用phery库轻松地通过AJAX将PHP与jQuery联系起来。 http://phery-php-ajax.net
你没有提到#book
是什么,我想这是一个表格吗?在这种情况下,在表单中使用data-related
将使它能够在一个AJAX调用中加入这两个表单。
在你的情况下,它会像:
<form id="form1" data-remote="function" method="POST" data-related="#book">
<input id="l" name="l" size="45" type="text" value="book">
<input id="submit" name="submit" value="save" type="submit">
</form>
在你的PHP中它将是:
function func($data){
$r = new PheryResponse;
// $data['l'] got what you want, also $data['submit'] is available here
// do whatever you need to do, then update your #contentmainpane
$r->jquery('#contentmainpane')->html('your cart.php contents');
return $r;
}
Phery::instance()->set(array(
'function' => 'func'
))->process();
你的逻辑现在将是服务器端,而不再是客户端。通过这种方式,您可以获得更大的灵活性,因为来自服务器的代码是免费的,并且可以在需要时进行更改,而客户端代码则不同。
答案 3 :(得分:0)
问题已解决
谢谢大家的建议和努力。编码论坛上的用户解决了这个ajax帖子问题。
这是线程http://www.codingforums.com/showthread.php?p=1294868#post1294868
最好的问候所有程序员