使用ajax刷新页面而不重新加载,在此页面中使用POST / GET

时间:2015-05-06 07:54:14

标签: javascript php jquery html ajax

有三个方面,我正在使用Ajax以避免重新加载页面进行刷新。 这3个内容,和js:

内容:

<ul id="nav">
<li><a href="ajax_adat.php?id=8&epul=0">Adatok</a></li>
<li><a href="piac_vasarlas.php?id=8&epul=0">Kereskedelem</a></li>
<li><a href="piac_egyseg_gyartas.php?id=8&epul=0">Egység gyártás</a></li>

JS:

$(document).ready(function () {

$('ul#nav li a').click(function(){
    var page = $(this).attr('href');
    $('#content').load('../views/' + page );
    return false;
});});

所有三个页面都想使用POST和GET。例如我喜欢使用的内容: egyseg_gyartas.php?id=8&epul=0看起来像是:

...<input type=\"number\" name=\"v_vesz\" min=\"0\" max=\"".$hany["$v[$i]"]["epitheto"]."\" step=\"1\">...
<form action="<?php echo $_SERVER['PHP_SELF'], '?id=' . $id . '&epul=' . $lenneEpulet . '&Pgyart';?>" method="post">
    <input type="submit" name="egyseg_vasarlas" value="Küldés" style="float: left">
    <input type="Button" value="Vissza" onclick="$:location.href='../views/jatek.php'" style="float: left; margin-left: 10px">
</form>

例如POST:

if( isset($_POST['egyseg_vasarlas']) )
{
    x = $_GET['v_vesz']
    ..... 
}

那么如果我在没有重新加载的情况下使用这个刷新的页面,我怎么能使用POST?在POST中,通常必须更改将在该页面上构建的变量。 例如,你可以买一辆旅行车(游戏),如果你买了它,在POST我需要改变,现在他不能买2辆马车,只有1,我在POST等使用php功能...... / p>

2 个答案:

答案 0 :(得分:0)

将输入字段放入表单元素:

<form action="<?php echo $_SERVER['PHP_SELF']. '?id=' . $id . '&epul=' . $lenneEpulet . '&Pgyart';?>" method="post">
    <input type=\"number\" name=\"v_vesz\" min=\"0\" max=\"".$hany["$v[$i]"]["epitheto"]."\" step=\"1\">
    <input type="submit" name="egyseg_vasarlas" value="Küldés" style="float: left">
    <input type="Button" value="Vissza" onclick="$:location.href='../views/jatek.php'" style="float: left; margin-left: 10px">
</form>

如果您想发送数据,则必须将输入字段放入表单中。

这是问题吗?

答案 1 :(得分:0)

从我所看到的你正在使用.load

  

大致相当于$ .get(url,data,success)

如果您想发布数据,您仍然可以使用.load

  

如果数据作为对象提供,则使用POST方法;除此以外,   假设GET。

所以应该执行帖子的例子是..

$(document).ready(function () {
    $('ul#nav li a').click(function(){
        var page = $(this).attr('href');
        var data = {
            "id": $(this).data("id"),
            "epul": $(this).data("epul"),
            "type": $(this).data("type"),
        };
        $('#content').load('../views/' + page, data);
        return false;
    });
});

我要说的另一件事是,如果使用数据属性,您会发现从单击的元素中提取GET参数并将它们在数据对象中传递给后端更容易。我在上面的例子中已经这样做了

<ul id="nav">
<li data-id="8" data-epul="0" data-type="adatok"><a href="ajax_adat.php>Adatok</a></li>
<li data-id="8" data-epul="0" data-type="kereskedelem"><a href="piac_vasarlas.php>Kereskedelem</a></li>
<li data-id="8" data-epul="0" data-type="egyseg_vasarlas"><a href="piac_egyseg_gyartas.php>Egység gyártás</a></li>