将表单操作结果页面加载到


load a form action result page into <div> without refreshing

不让人耳目一新。

我想在一个div中加载这个选择表单的结果(add_cart.php?action=add&id=".$item[$i]['id'].").",但仍然将变量传递给add_cart.php页面,将add_cart.php?action=add&id=".$item[$i]['id']."页面加载到一个div中,而不刷新,但让页面执行操作。

代码:

print("<div id='add_cart'></div>
    <form action='/add_cart.php?action=add&id=".$item[$i]['id']."' method='post'>
        <select name='id' class='select'>
            <option selected='selected' value='".$sku[$s]['id']."'>".$sku[$s]['id']."</option>
            <option value='".$sku[$s]['id']."'>".$sku[$s]['id']."</option>
        </select>
        <input type='submit' class='add_cart' value='".$lang['add_cart']."'>
    </form>
");

add_cart代码:

    session_start();
    if(isset($_POST['id'])) {
$id = $_POST['id'];
}else{
$id = $_GET['id'];
}
$id_user = $_GET['id_user'];

    $cart = $_SESSION['cart_order'];
    $action = $_GET['action'];
    switch ($action) {
case 'add':
    if ($cart) {
        $cart .= ','.$id;
    } else {
        $cart = $id;
    }
    break;
case 'delete':
    if ($cart) {
        $items = explode(',',$cart);
        $newcart = '';
        foreach ($items as $item) {
            if ($id != $item) {
                if ($newcart != '') {
                    $newcart .= ','.$item;
                } else {
                    $newcart = $item;
                }
            }
        }
        $cart = $newcart;
    }
    break;
case 'update':
if ($cart) {
    $newcart = '';
    foreach ($_POST as $key=>$value) {
        if (stristr($key,'qty')) {
            $id = str_replace('qty','',$key);
            $items = ($newcart != '') ? explode(',',$newcart) :        explode(',',$cart);
            $newcart = '';
            foreach ($items as $item) {
                if ($id != $item) {
                    if ($newcart != '') {
                        $newcart .= ','.$item;
                    } else {
                        $newcart = $item;
                    }
                }
            }
            for ($i=1;$i<=$value;$i++) {
                if ($newcart != '') {
                    $newcart .= ','.$id;
                } else {
                    $newcart = $id;
                }
            }
        }
    }
}
$cart = $newcart;
break;

}

您应该搜索Ajax。它可以让你"不重新加载整个页面"来实现这一点,让你的生活更轻松,你可以在一些最流行的框架(jQuery, Prototype, Mootools, Dojo, Yui)中中转,我的建议是使用jQuery,因为它是最流行的,我认为它很容易使用。

你也可以看看这个教程http://www.php4every1.com/tutorials/jquery-ajax-tutorial/

发现只是在谷歌上输入php and ajax tutorial

http://jsfiddle.net/nQBjW/

HTML

<select name='id' class='select'>
    <option value="some value">some value</option>
</select>
<div id='add_cart' style='background:#f60; color:#fff; font-family:arial; max-width:120px; text-align:center; display:block; padding:5px; border-radius:5px; cursor:pointer'>agregar al carro</div>
JAVASCRIPT

var makeAjax = function () {
    $.ajax({
        url: "/echo/json/", //'/add_cart.php?action=add&id=".$item[$i]['id ']."' replace with you url on your server
        type: "POST",
        data: {
            some: "data"
        }
    }).done(function (resp) {
        alert(resp);
    });
};
$("#add_cart").on("click", function (event) {
    makeAjax();   
});