链接到页面并通过相同的按钮触发ajax

时间:2014-04-07 21:55:26

标签: javascript php html ajax

我试图创建一个触发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标签显示了要重定向的页面。

1 个答案:

答案 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();
}