我想在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;
}
答案 0 :(得分:0)
您应该搜索Ajax。这让你工作“无需重新加载整个页面”来实现这一点并让你的生活更轻松你可以在一些框架中继承(jQuery,Prototype,Mootools,Dojo,Yui)是一些最受欢迎的,我的建议是使用jQuery因为是最受欢迎的,我认为很容易使用。
另外,您可以查看本教程http://www.php4every1.com/tutorials/jquery-ajax-tutorial/
发现只需在Google上输入php and ajax tutorial
。
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();
});