所以结构是:
的index.php 加载/index.php#ajax/landing.php
landing.php有一个表单,表单数据作为post请求发送(Tamper数据显示正在发送的POST数据),但landing.php中的var_dump($_POST);
显示为空。我猜是因为加载脚本的方式,后期数据必须发送到index.php而且登陆时不能访问?
有解决方法吗?
我已经考虑过使用ajax发送帖子数据并将结果显示在div中的可能性,但我对它并不是很好,并且我并不真正理解我所做的事情。我在做,
所以在我的场景中,这就是我想要做的事情:
<form name="search_form" id="search_form" method="POST">
<input type="text" name="search" id="search" />
<input type="submit" name="submit_search_form" id="submit_search_form" value="search" />
</form>
<div id="search_results">
</div>
我如何向/php/search.php
发送POST请求,然后将脚本对发布数据的结果放入搜索结果div?
任何想法/帮助将不胜感激。 请注意我要求POST,因为GET /查询字符串可以被页面访问,但不适合其他任务,例如更改密码,所以虽然在我提到的情景中我会很好GET请求,无论如何,我都需要找到一种让POST工作的方法。
答案 0 :(得分:0)
我使用类似这样的东西(需要jQuery):
$(document).ready(function() { // When the document is completely loaded this function runs
$('form').unbind('submit').bind('submit', function(event) { // catch the pressing of enter and catch submit action. Makes sure the form does not get posted the normal way
if (event.keyCode == 13) { // if enter is pressed
return false;
}
pageRetrieve($(this).attr('action')+"?"+$(this).serialize(), 'POST'); // send this data to the function that sends the post
event.preventDefault();
return false;
});
});
function pageRetrieve(href, sType) { // this function send the data to the server
sType = (typeof sType === "undefined") ? "GET" : sType; // if 'POST' is not set in the previous function, set it to GET
$.ajax({ // function to send the data to the server
url: href, // the url to send it to
type: sType, // the type (post/get)
success: function (data) { // when the server responds successful
$('#search_results').html(data); // put the data in your div
},
error: function () { // if call to server is not correct (eg wrong url)
alert("error");
}
});
}
这只是将数据发布到表单中的指定网址。