繁体   English   中英

使用ajax刷新页面而无需重新加载,并且在此页面中使用POST / GET

[英]Use ajax to refresh page without reload, and in this pages use POST / GET

有3个方面,我正在使用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函数,等等。

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

<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>

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

是问题吗?

从我可以看到您正在使用.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;
    });
});

我要说的另一件事是,如果您使用数据属性,则会发现从clicked元素中提取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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM