В любом случае, что я могу получить значения массива PHP через AJAX? - PullRequest
2 голосов
/ 16 апреля 2010

Я пытаюсь создать сайт корзины покупок.Когда пользователь нажимает добавить изображение корзины на странице продукта, в заголовке продукта будет отображаться текст «Продукт в вашей корзине» без перезагрузки страницы.Я использую сессию и AJAX, но пока не повезло.Я ценю любую помощь.

Мой HTML холодный

 <table id="<?php echo $productId; ?>" width="594" border="0" cellpadding="5" cellspacing="0">
    <tr>
                <td><img src="<?php echo "$brandImage"; ?></td>
    <td <?php echo $productName; ?>  //The "The product is in your cart" will be showed here</td>
        </tr> 
<tr>
<td><a class="addToCart" href="javascript:void(0);" onclick="addToCart(<?php echo $productId?>)"> 
</td>

Мой файл Javascript (addToCart.js)

   function addToCart(productId){

var url="addToCart.php";
url=url+"?productId="+productId;
url=url+"&sid="+Math.random();


$.post(
 url,
 function(responseText){
  alert(responseText); //I wish I can get productData value from addToCart.php
 },
 "html"
)

Мой файл phpaddToCart.php)

   <?php SESSION_START();

$productId=$_GET['productId'];
$cart=$_SESSION['cart'];

if(isset($cart)){
 $cart.=",".$productId;
 $product=explode(',',$cart);
 $totalItem=count($product);

}else{
 $cart=$productId;
 $totalItem=1;

};
$productData=array();
foreach($product as $id){
$productData[$id]=(isset($productData[$id])) ? $productData[$id]+1 :1;
};
$_SESSION['cart']=$cart;
//print_r($productData);
echo $productData; //Not sure what to do to send $productData back to my addToCart.js variable




?>

Я попытался сделать код простым.Любое предложение будет отличной помощью.Спасибо

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Самый простой способ - использовать json_encode () для переменной. так что ...

header('Content-type: text/javascript; charset=UTF-8'); // or what ever charset you're using
echo json_encode($productData);

тогда вы можете просто прочитать значения в responseText как:

alert(responseText.whatever);
0 голосов
/ 16 апреля 2010

Не знаю, поможет ли это, но что если вы вернете false по ссылке.

<a class="addToCart" href="javascript:void(0)" onclick="addToCart(<?php echo $productId?>); return false;">

Возвращение false будет означать, что браузер не будет переходить по ссылке. Таким образом, документ не будет перезагружен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...