将表单操作结果页面加载到<div>而不刷新</div>

时间:2013-04-23 13:23:39

标签: php jquery forms action

我想在div中加载此select表单的结果(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;

}

1 个答案:

答案 0 :(得分:0)

您应该搜索Ajax。这让你工作“无需重新加载整个页面”来实现这一点并让你的生活更轻松你可以在一些框架中继承(jQuery,Prototype,Mootools,Dojo,Yui)是一些最受欢迎的,我的建议是使用jQuery因为是最受欢迎的,我认为很容易使用。

另外,您可以查看本教程http://www.php4every1.com/tutorials/jquery-ajax-tutorial/

发现只需在Google上输入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();   
});