通过ajax加载的脚本不会正确地将发布数据发送给自己?

时间:2014-06-21 15:22:26

标签: javascript php ajax

所以结构是:

的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工作的方法。

1 个答案:

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

这只是将数据发布到表单中的指定网址。