我试图创建一个触发ajax的div按钮并链接到ajax发布数据的页面。我有一个ajax在点击工作,但似乎无法使链接工作,我试图让链接工作的所有方法都没有。
我有一个div按钮:
<div class="cman shadow1" id="search_button" value="carSearch"/>
Start Search
</div>
哪个触发器:
function carSearch()
{
$.ajax({
type: "POST",
url: 'searchpost.php',
data:
{
mpg : $('.mpg').val()
},
success: function(data)
{
alert("success! "+$('.mpg').val());
}
});
}
编辑:
我觉得我应该提到我想链接到的页面是atm:
<?php
session_start();
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('cdb', $conn);
if(isset($_POST['mpg']))
{
$mpg = (int)($_POST["mpg"]);
header("Location: home.php");
exit;
}
?>
我希望用它来收集用户输入的所有搜索字段,然后加载搜索结果页面。上面的代码仅用于测试。
我提到这是因为用户@Doge建议做document.location.href =&#34; searchpost.php&#34;在ajax的成功处理程序中,这确实导致页面改变但是页面没有运行isset和重定向,所以js变量没有被发布,或者它只是页面的这个实例没有得到它。
isset和redirect确实可以正常工作,因为我的页面上的XHR Network标签显示了要重定向的页面。
答案 0 :(得分:1)
如果你必须通过js这样做,那么创建一个隐藏的表单,填充并提交它:
HTML:
<form method="post" id="hiddenform" action="searchpost.php">
<input type="hidden" name="mpg" id="mpg"/>
</form>
JS:
function carSearch()
{
$('#mpg').val(yourjsvariable);
$('#hiddenform').submit();
}