index.php
<?php
session_start();
require "options/db.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript" type="text/javascript">
function createXMLHttp() {
if(typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
alert("Привет");
} else if(window.ActiveXObject) {
var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
"Microsoft.XMLHttp"
];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
alert(aVersions[i]);
return oXmlHttp;
} catch (oError) {
}
}
throw new Error("Невозможно создать объект XMLHttp.");
}
}
function getRequest(id){
var oXmlHttp = createXMLHttp();
oXmlHttp.open("GET","proc_cart.php?action=add&id=" + id,true);
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Главная</title>
<link href="class.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="/favicon.ico" />
<script src="js/js.js" type="text/javascript"></script>
</head>
<body>
<table style="margin:100px auto 0 auto;" width="960" border="0" cellpadding="0" cellspacing="0">
<?php require "blocks/top.php"; ?>
<tr>
<td valign="top">
<div style="margin-top:100px;">
<div id="new_art"><strong>Последние товары добавленные на сайт: </strong></div><br />
<?php
$sql = "select * from articles order by date desc limit 3";
$result = mysql_query($sql) or die(mysql_error."<br/>".$sql);
while($row = mysql_fetch_assoc($result))
{
if ($row['img1'] == '') $row['img1'] = 'none.jpg';
if ($row['views'] == null) $row['views'] = 0;
echo "<img class='img' src='images/articles/".$row['img1']."' alt='Журналы' />
<a class='a_href' href='articles_all.php?id=".$row['id']."'>".$row['name']."</a><br /><br />
<div class='text_art'>Артикул: ".$row['articul']."<br />Число листов: ".$row['pages']."</div><br />
<div class = 'price'><strong>Розничная цена: ".$row['price'].".00руб.*</strong></div>
<div class = 'price'><strong>Оптовая цена: ".$row['price_opt'].".00руб.*</strong></div>
<a style='margin-left:130px;' class='f-right-art'>
<img style='float:right; margin-top: 25px;' src='купить.jpg' width='176' height='82' alt='Купить'/></a>
<input type='button' onclick = 'getRequest(".$row['id'].")' value='Добавить'>
<div style='color:#ccc;' class='view'><p>Просмотров: ".$row['views']."</p></div><br />";
}
?>
<p style="color: #000; font-weight:bolder;">Эту страницу посетили
<a href="http://www.warlog.ru/" target="_blank">
<img border="0" src="http://www.warlog.ru/counter/?i=3034" alt="счетчик посещений" title="счетчик посещений" />
</a>
раз(а).</p>
</div>
</td>
<?php require "blocks/right.php"; ?>
</tr>
</table>
</body>
</html>
proc_cart.php
<?php
session_start();
require "options/db.php";
// Обработка корзины
$id = intval($_GET['id']);
if(isset($_SESSION['cart'][$id]))
$_SESSION['cart'][$id]['quantity']++;
elseif($_GET['action'] == 'add'){
$sql_s = "select * from articles where id = ".$id;
$query_s = mysql_query($sql_s) ;
if (mysql_num_rows($query_s) != 0){
$row_s = mysql_fetch_assoc($query_s);
$_SESSION['cart'][$row_s['id']] = array("quantity" => 1, "price" => $row_s['price']);
}
}
// Конец обработки
?>
Что я делаю не так? просто результата никакого.
Спустя 1 час, 24 минуты, 6 секунд (3.02.2011 - 14:32) sergeiss написал(а):
Примерный путь отладки такой, возможны варианты "по месту":
1. У тебя написана куча алертов в JS - из них нужные выводятся?
2. Когда дело доходит до передачи параметров на сервер - что именно передаётся? Надо сначала записать их в переменную, вывести алертом и только затем отправлять на сервер.
3. Вызови ПХП-файл напрямую с теми параметрами, что ты передал в п.2. Что получишь в результате? Что-то выводится? А что именно - то, что надо?
1. У тебя написана куча алертов в JS - из них нужные выводятся?
2. Когда дело доходит до передачи параметров на сервер - что именно передаётся? Надо сначала записать их в переменную, вывести алертом и только затем отправлять на сервер.
3. Вызови ПХП-файл напрямую с теми параметрами, что ты передал в п.2. Что получишь в результате? Что-то выводится? А что именно - то, что надо?
Спустя 12 минут, 45 секунд (3.02.2011 - 14:45) nugle написал(а):
Раеьше было всё в первом скрипте, товар добавлялся при нажатии на кнопку, алерты не выводятся и они должны выводиться после нажатия на кнопку
Спустя 19 минут, 54 секунды (3.02.2011 - 15:05) sergeiss написал(а):
Говоря про отладку я подразумевал, что ты сам подумаешь... Хотя бы для начала.
Спустя 6 минут, 12 секунд (3.02.2011 - 15:11) nugle написал(а):
Когда я поставил вывод алертом, то все прекрасно вывелось, теперь это нужно передать в другой скрипт, но это не выходит у меня!
Спустя 5 минут, 18 секунд (3.02.2011 - 15:16) sergeiss написал(а):
Цитата (nugle @ 3.02.2011 - 16:11) |
теперь это нужно передать в другой скрипт, но это не выходит у меня! |
ОК... А как ты понял, что именно не передалось? Может быть всё передалось, только там что-то неправильно обработалось? Или просто там языковая ошибка и поэтому нет данных?
Обрати внимание на п.3 того, что я ранее в этой теме писал.
Спустя 5 минут, 57 секунд (3.02.2011 - 15:22) nugle написал(а):
если напрямую вызвать и в корзине уже есть такой товар, то он увеличивается, а если нет то ниче не происходит.
Спустя 6 минут, 42 секунды (3.02.2011 - 15:29) sergeiss написал(а):
nugle - то есть, приходим к тому, что что-то неверно в логике обработчика запроса и аякс не виноват???
Спустя 1 минута, 6 секунд (3.02.2011 - 15:30) Michael написал(а):
Цитата |
function getRequest(id){ |
Спустя 2 минуты, 40 секунд (3.02.2011 - 15:33) nugle написал(а):
вставляю proc_cart.php в index.php и всё нормально. В чём же тогда дело?
Спустя 20 минут, 4 секунды (3.02.2011 - 15:53) nugle написал(а):
всё сделал, только вот почему то увеличивается число товаров после перезагрузки страницы, 15 раз натыкал и только после перезагрузки страницы появилось 15 товаров, почему?
Спустя 1 час, 53 минуты, 51 секунда (3.02.2011 - 17:47) sharki написал(а):
Вот подумай над простеньким алгоритмом:
1)Тыкаешь на "КУПИТЬ" -> ajax отпарвляет данные в файл обработчик
2)Раз у тебя данные о товаре т.е кол-во товара и т.д в корзине, находятся в сессионных переменных то их можно поймать и изменить в файле обработчике
3) В файле обработчике ты создаешь сессию (это просто обязательно, чтобы получить значения данной сессии корзины) после добавления товара в сессионную переменную, ты посредством echo $_SESSION['cart'] или че там у тебя, отправляешь ответ и аяксом лови ответ с файла обработчика, по моему там "респонзе текст" и js вставляй новые данные в блок с корзиной.
1)Тыкаешь на "КУПИТЬ" -> ajax отпарвляет данные в файл обработчик
2)Раз у тебя данные о товаре т.е кол-во товара и т.д в корзине, находятся в сессионных переменных то их можно поймать и изменить в файле обработчике
3) В файле обработчике ты создаешь сессию (это просто обязательно, чтобы получить значения данной сессии корзины) после добавления товара в сессионную переменную, ты посредством echo $_SESSION['cart'] или че там у тебя, отправляешь ответ и аяксом лови ответ с файла обработчика, по моему там "респонзе текст" и js вставляй новые данные в блок с корзиной.
Спустя 3 минуты, 19 секунд (3.02.2011 - 17:50) nugle написал(а):
а как ловить то их?
Спустя 1 минута, 55 секунд (3.02.2011 - 17:52) sharki написал(а):
nugle
Чистый ajax я плохо знаю (делал на JQ), вот здесь в краце расписанно че и как ловить
http://irbis-team.com/15/13
Чистый ajax я плохо знаю (делал на JQ), вот здесь в краце расписанно че и как ловить
http://irbis-team.com/15/13
Спустя 5 минут, 8 секунд (3.02.2011 - 17:57) nugle написал(а):
это я уже читал, я просто не могу понять как сессии поменять!
Спустя 5 минут, 14 секунд (3.02.2011 - 18:02) sharki написал(а):
ну вот сам подумай, ты отправил данные обработчику, ОБРАБОТЧИК УЖЕ СДЕЛАЛ UDATE СЕССИИ на новые значения, тебе лишь надо отправить ответ обратно, а ответ состоит из той же самой таблицы с данными о товарах (которое ты формируешь с право чуть ниже корзины), тебе только надо принять сформированную таблицу с файла обработчика и с помощью JS заменить на новую.
Спустя 6 минут, 37 секунд (3.02.2011 - 18:09) nugle написал(а):
а как ответ отправить?
Спустя 6 минут, 30 секунд (3.02.2011 - 18:16) sharki написал(а):
echo "Ответ";
и JS переменной будут содержаться данные, который ты вывел посредством echo
и JS переменной будут содержаться данные, который ты вывел посредством echo
Спустя 6 минут, 7 секунд (3.02.2011 - 18:22) nugle написал(а):
вот у меня js
я же не могу вставить echo в js, как мне потом сюда отправить?
принял всё отсюда
<script language="JavaScript" type="text/javascript">
function createXMLHttp() {
if(typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
"Microsoft.XMLHttp"
];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (oError) {
}
}
throw new Error("Невозможно создать объект XMLHttp.");
}
}
function getRequest(id){
url = "proc_cart.php?action=add&id=" + id;
var oXmlHttp = createXMLHttp();
oXmlHttp.open("GET",url,true);
oXmlHttp.send(null);
}
</script>
я же не могу вставить echo в js, как мне потом сюда отправить?
<td valign="top" width="15%">
<div id="bascket" style="margin-left: 20px;">
<img src="../big_2722.jpg" width="120" height="120" alt="Корзина" />
<h3>Ваша корзина</h3>
<?php
if(isset($_SESSION['cart'])){
$sql = "select * from articles where id in(";
foreach($_SESSION['cart'] as $id=>$value){
$sql.= $id.",";
}
$sql = substr($sql, 0,-1).") order by name asc";
$result =mysql_query($sql) or die("<p>В корзине нет товаров</p>");
while($row = mysql_fetch_assoc($result)){
$summa += $row['price'] * $_SESSION['cart'][$row['id']]['quantity'];
?>
<p><?php echo $row['articul']?> x <?php echo $_SESSION['cart'][$row['id']]['quantity']?>
<?php }?>
<hr />
Общая цена:<br /> <?php echo $summa?> руб.<br />
<a class='a_href_basket' href="cart.php">Просмотр корзины</a>
<?php
}else echo "<p>В корзине нет товаров</p>"; ?>
</div>
</td>
принял всё отсюда
<?php
session_start();
require "options/db.php";
$_GET['action'] = 'add';
$id = $_GET['id'];
if(isset($_SESSION['cart'][$id]))
$_SESSION['cart'][$id]['quantity']++;
elseif($_GET['action'] == 'add'){
$sql_s = "select * from articles where id = ".$id;
$query_s = mysql_query($sql_s) ;
if (mysql_num_rows($query_s) != 0){
$row_s = mysql_fetch_assoc($query_s);
$_SESSION['cart'][$row_s['id']] = array("quantity" => 1, "price" => $row_s['price']);
}
}
?>
Спустя 6 минут, 7 секунд (3.02.2011 - 18:28) sharki написал(а):
Напиши самый простой тестовый скрипт, что в него входит.
1) ajax, который отправляет какую то переменную методом post в файл обработчик
2) в файле обработчике ты тупо напиши такой код
3) и лови ответ, ajax имеет функцию которая принимает ответ с файла обработчика! почитай на ирбисе как там реализовано, всё четко объясняется, не поленись еще раз прочесть и понять в чем прикол моих слов.
1) ajax, который отправляет какую то переменную методом post в файл обработчик
2) в файле обработчике ты тупо напиши такой код
<? echo "ЭТО ОТВЕТ С ОБРАБОТЧИКА!!!"; ?>
3) и лови ответ, ajax имеет функцию которая принимает ответ с файла обработчика! почитай на ирбисе как там реализовано, всё четко объясняется, не поленись еще раз прочесть и понять в чем прикол моих слов.
Спустя 36 минут, 36 секунд (3.02.2011 - 19:04) nugle написал(а):
Я почитал еще раз на ирбисе, но вот не доходит как выбрать весь скрипт корзины, обработать и вставить обратно..
Спустя 40 секунд (3.02.2011 - 19:05) sharki написал(а):
Вот как ты формируешь таблицу своей корзины с право?
Спустя 4 минуты, 17 секунд (3.02.2011 - 19:09) nugle написал(а):
вот так:
<td valign="top" width="15%">
<div id="bascket" style="margin-left: 20px;">
<img src="../big_2722.jpg" width="120" height="120" alt="Корзина" />
<h3>Ваша корзина</h3>
<?php
if(isset($_SESSION['cart'])){
$sql = "select * from articles where id in(";
foreach($_SESSION['cart'] as $id=>$value){
$sql.= $id.",";
}
$sql = substr($sql, 0,-1).") order by name asc";
$result =mysql_query($sql) or die("<p>В корзине нет товаров</p>");
while($row = mysql_fetch_assoc($result)){
$summa += $row['price'] * $_SESSION['cart'][$row['id']]['quantity'];
?>
<div id="cart"><?php echo $row['articul']?> x <?php echo $_SESSION['cart'][$row['id']]['quantity']?></div>
<?php }?>
<hr />
Общая цена:<br /> <?php echo $summa?> руб.<br />
<a class='a_href_basket' href="cart.php">Просмотр корзины</a>
<?php
}else echo "<p>В корзине нет товаров</p>"; ?>
</div>
</td>
Спустя 1 минута, 25 секунд (3.02.2011 - 19:11) sharki написал(а):
Ну вот, добавь в файл обработчик этот код! И выведи ответ где нить в диве..не забудь создать
Спустя 4 минуты, 45 секунд (3.02.2011 - 19:15) nugle написал(а):
Вот так сделал но не работает
<?php
session_start();
require "options/db.php";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Главная</title>
<link href="class.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" href="/favicon.ico" />
<script src="js/js.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
function createXMLHttp() {
if(typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if(window.ActiveXObject) {
var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
"Microsoft.XMLHttp"
];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (oError) {
}
}
throw new Error("Невозможно создать объект XMLHttp.");
}
}
var req = createXMLHttp();
function getRequest(id){
url = "proc_cart.php?action=add&id=" + id;
req.open("GET",url,true);
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}
function Refresh()
{
var a = req.readyState;
if( a == 4 )
{
var b = req.responseText;
document.getElementById('cart').innerHTML = b;
}
}
</script>
</head>
<body>
<table style="margin:100px auto 0 auto;" width="960" border="0" cellpadding="0" cellspacing="0">
<?php require "blocks/top.php"; ?>
<tr>
<td valign="top">
<div style="margin-top:100px;">
<div id="new_art"><strong>Последние товары добавленные на сайт: </strong></div><br />
<?php
$sql = "select * from articles order by date desc limit 3";
$result = mysql_query($sql) or die(mysql_error."<br/>".$sql);
while($row = mysql_fetch_assoc($result))
{
if ($row['img1'] == '') $row['img1'] = 'none.jpg';
if ($row['views'] == null) $row['views'] = 0;
echo "<img class='img' src='images/articles/".$row['img1']."' alt='Журналы' />
<a class='a_href' href='articles_all.php?id=".$row['id']."'>".$row['name']."</a><br /><br />
<div class='text_art'>Артикул: ".$row['articul']."<br />Число листов: ".$row['pages']."</div><br />
<div class = 'price'><strong>Розничная цена: ".$row['price'].".00руб.*</strong></div>
<div class = 'price'><strong>Оптовая цена: ".$row['price_opt'].".00руб.*</strong></div>
<a style='margin-left:130px;' class='f-right-art'>
<img onclick = 'getRequest(".$row['id'].");Pusk();' style='float:right; margin-top: 25px; cursor:pointer;' src='купить.jpg' width='176' height='82' alt='Купить' /></a>
<div style='color:#ccc;' class='view'><p>Просмотров: ".$row['views']."</p></div><br />";
}
?>
<p style="color: #000; font-weight:bolder;">Эту страницу посетили
<a href="http://www.warlog.ru/" target="_blank">
<img border="0" src="http://www.warlog.ru/counter/?i=3034" alt="счетчик посещений" title="счетчик посещений" />
</a>
раз(а).</p>
</div>
<div id="cart"></div>
</td>
<?php require "blocks/right.php"; ?>
</tr>
</table>
</body>
</html>
Спустя 14 минут, 45 секунд (3.02.2011 - 19:30) sharki написал(а):
Чёт ты мудришь по страшному, вот мой код обработчика, моя функция просчитывает кол-во и каков товар и она возвращает итоговое кол-во товара и его сумму. И файл обработчик тупо создает новую форму и отправляет назад О_О
Вот это и отправляется обратно аяксу для обновления корзины!
session_start();
// Подключаем config
include "../config.php";
// Подсоединяем функции работы с БД
include "../lib/db.php";
// подключаемся к БД
db_connect();
include "../modules/shop/cart.php"; // вывод модуля корзины
$add_cart = add_to_cart($_POST['id'],$_POST['pid']);
if($add_cart)
{
$_SESSION['total_items'] = total_items($_SESSION['cart']);
$_SESSION['total_price'] = total_price($_SESSION['cart']);
printf( "<p id=\"bassket_k\"><b>Доска заказов</b></p>
<p id=\"bassket_name\"><b>Наименований:</b> %s</p>
<p id=\"bassket_sum\"><b>Сумма заказа:</b> %s р.</p>
<p id=\"bassket_check\"><b><a href=\"?act=checkout\">Оформление заказа</a></b></p>",
$_SESSION['total_items'], number_format($_SESSION['total_price']));
}
Вот это и отправляется обратно аяксу для обновления корзины!
printf( "<p id=\"bassket_k\"><b>Доска заказов</b></p>
<p id=\"bassket_name\"><b>Наименований:</b> %s</p>
<p id=\"bassket_sum\"><b>Сумма заказа:</b> %s р.</p>
<p id=\"bassket_check\"><b><a href=\"?act=checkout\">Оформление заказа</a></b></p>",
$_SESSION['total_items'], number_format($_SESSION['total_price']));
}
Спустя 4 минуты, 45 секунд (3.02.2011 - 19:35) nugle написал(а):
$_SESSION['total_items'] = total_items($_SESSION['cart']);
$_SESSION['total_price'] = total_price($_SESSION['cart']);
что это за строчки?
printf( "<p id=\"bassket_k\"><b>Доска заказов</b></p>
<p id=\"bassket_name\"><b>Наименований:</b> %s</p>
<p id=\"bassket_sum\"><b>Сумма заказа:</b> %s р.</p>
<p id=\"bassket_check\"><b><a href=\"?act=checkout\">Оформление заказа</a></b></p>",
$_SESSION['total_items'], number_format($_SESSION['total_price']));
}
Это отправляется аяксу, а потом назад? Как ты это отправляешь и как назад отправляешь?
Спустя 2 минуты, 42 секунды (3.02.2011 - 19:38) sharki написал(а):
nugle
Это мои функции (высчитывают общею сумму, и кол-во), я тебе показал пример выдачи ответа с обработчика.
Это мои функции (высчитывают общею сумму, и кол-во), я тебе показал пример выдачи ответа с обработчика.
Спустя 4 минуты, 7 секунд (3.02.2011 - 19:42) nugle написал(а):
printf( "<p id=\"bassket_k\"><b>Доска заказов</b></p>
<p id=\"bassket_name\"><b>Наименований:</b> %s</p>
<p id=\"bassket_sum\"><b>Сумма заказа:</b> %s р.</p>
<p id=\"bassket_check\"><b><a href=\"?act=checkout\">Оформление заказа</a></b></p>",
$_SESSION['total_items'], number_format($_SESSION['total_price']));
}
Это отправляется аяксу, а потом назад? Как ты это отправляешь и как назад отправляешь?
Спустя 5 минут, 35 секунд (3.02.2011 - 19:47) sharki написал(а):
nugle
Ты знаешь как работает аякс?
1) Он отправляет какие то данные POST\GET методом данные обработчику, обработчик работает с этими данными
2) обработчик может выдать ответ посредством echo и т.д т.е то, что выводит на экран. Например echo "привет";
3) аякс принимает ответ с обработчика именно этот вывод echo и т.д и помещает весь ответ (привет) в переменной, а дальше ты сам решай что с ней делать
4) ответ может быть XML файлом или JSON или тупо как у меня простым HTML
Ты знаешь как работает аякс?
1) Он отправляет какие то данные POST\GET методом данные обработчику, обработчик работает с этими данными
2) обработчик может выдать ответ посредством echo и т.д т.е то, что выводит на экран. Например echo "привет";
3) аякс принимает ответ с обработчика именно этот вывод echo и т.д и помещает весь ответ (привет) в переменной, а дальше ты сам решай что с ней делать
4) ответ может быть XML файлом или JSON или тупо как у меня простым HTML
Спустя 4 минуты, 7 секунд (3.02.2011 - 19:51) sharki написал(а):
Вот кусок разберись в нем, из ирбиса скопировал
Дальше нам нужно принять ответ сервера. Для этого напишем функцию:
которая будет вызвана после отправки запроса. Мы это уже проходили (см выше)
Что тут. Сначала мы смотрим состояние связи. Нас интересует 4, потому что это обозначает - ответ принят и загружен. Получить его можно методом req.responseText ну и прописать в какой нибудь приемник, допустим div. А пока ответ не получен, в этот приемник для красоты нарисуем какой нибудь индикатор.
Вот и всё, весь аякс. Осталось на сервере принять запрос, обработать его и выдать результат, все точно так же, как и при обычном взаимодействии.
Вто что у нас получилось: http://irbis-team.com/15/13
Дальше нам нужно принять ответ сервера. Для этого напишем функцию:
function Refresh()
{
var a = req.readyState;
if( a == 4 )
{
var b = req.responseText; // в переменную b помещается тот ответ, с моего примера это привет
document.getElementById('ajax').innerHTML = b;
}
else
{
document.getElementById('ajax').innerHTML = '<img src="prel.gif" />';
}
}
которая будет вызвана после отправки запроса. Мы это уже проходили (см выше)
Что тут. Сначала мы смотрим состояние связи. Нас интересует 4, потому что это обозначает - ответ принят и загружен. Получить его можно методом req.responseText ну и прописать в какой нибудь приемник, допустим div. А пока ответ не получен, в этот приемник для красоты нарисуем какой нибудь индикатор.
Вот и всё, весь аякс. Осталось на сервере принять запрос, обработать его и выдать результат, все точно так же, как и при обычном взаимодействии.
Вто что у нас получилось: http://irbis-team.com/15/13
Спустя 14 минут, 34 секунды (3.02.2011 - 20:06) nugle написал(а):
Ну он же вставляет ответ через getElementBuId, а у меня целая корзина, а нужно менять только сессии!
Спустя 59 секунд (3.02.2011 - 20:07) sharki написал(а):
nugle
Меняй данные под корзиной да и всё =))
Меняй данные под корзиной да и всё =))
Спустя 1 минута, 44 секунды (3.02.2011 - 20:09) nugle написал(а):
У меня в корзине товары выводяться циклом, то есть вот так
while($row = mysql_fetch_assoc($result)){
$summa += $row['price'] * $_SESSION['cart'][$row['id']]['quantity'];
?>
<?php echo $row['articul']?> x <?php echo $_SESSION['cart'][$row['id']]['quantity']?>
<?php }?>
Спустя 2 минуты, 53 секунды (3.02.2011 - 20:12) sharki написал(а):
это есть твой ответ =)
Всё что настряпает этот цикл, поместяится в одну переменную b
Всё что настряпает этот цикл, поместяится в одну переменную b
Спустя 2 минуты, 18 секунд (3.02.2011 - 20:14) nugle написал(а):
document.getElementById('ajax').innerHTML = b;
А с этим что делать?как я буду обратно их выводить?
Спустя 3 минуты, 31 секунда (3.02.2011 - 20:17) sharki написал(а):
Обверни свои данные под корзиной в див <div id='ajax'></div> и данные которые ты получишь, будут заменять содержимое(старое) на новое без перезагрузки.
Спустя 1 минута, 53 секунды (3.02.2011 - 20:19) nugle написал(а):
я обернул, ниче не меняется
Спустя 1 минута, 23 секунды (3.02.2011 - 20:21) sharki написал(а):
nugle
А ты проверь, вообще получил ответ или нет, перед
Вставь
И смотри что ты получаешь
А ты проверь, вообще получил ответ или нет, перед
document.getElementById('ajax').innerHTML = b;
Вставь
alert(b);
И смотри что ты получаешь
Спустя 13 минут, 11 секунд (3.02.2011 - 20:34) nugle написал(а):
работает, но получается так, образуется вторая страница и накладывается на первую, но див я поставил только на вывод
меня смущает, что Id должен быть один, а он выводится в цикле
<div id='ajax'><?php echo $row['articul']?> x <?php echo $_SESSION['cart'][$row['id']]['quantity']?></div>
меня смущает, что Id должен быть один, а он выводится в цикле
Спустя 9 минут, 11 секунд (3.02.2011 - 20:43) sharki написал(а):
nugle
Див сделай не в цикле, а на странице вообще! первоначальной, он должен быть статичен.
Див сделай не в цикле, а на странице вообще! первоначальной, он должен быть статичен.
Спустя 2 минуты, 4 секунды (3.02.2011 - 20:45) nugle написал(а):
спасибо большое!!!работает!
так сделал
Правильно?
так сделал
<div id='ajax'><?php require "blocks/right.php"; ?></div>
Правильно?
Спустя 2 минуты, 7 секунд (3.02.2011 - 20:47) sharki написал(а):
nugle
Примерно да. Ну практикуй, и улови суть того, что ты сделал, всё элементарно же)
Примерно да. Ну практикуй, и улови суть того, что ты сделал, всё элементарно же)
Спустя 1 минута, 27 секунд (3.02.2011 - 20:49) nugle написал(а):
Спасибо большое, только вот последний вопрос...Получается так ajax сделал запрос, ему вернули данные, а потом он просто эти данные если находит то заменяет?Правильно понял?
Спустя 1 минута, 48 секунд (3.02.2011 - 20:51) sharki написал(а):
nugle
Он отправил данные на сервер, сервер возвращает ему ответ, аякс помещает этот ответ в переменную, а дальше ты уже делай что хочешь.
Он отправил данные на сервер, сервер возвращает ему ответ, аякс помещает этот ответ в переменную, а дальше ты уже делай что хочешь.
Спустя 2 минуты, 16 секунд (3.02.2011 - 20:53) nugle написал(а):
спасибо)))
Спустя 1 минута, 55 секунд (3.02.2011 - 20:55) nugle написал(а):
А нет стопс, у меня теперь 1 страница в двух экземплярах, т.е. одна под другой!
Спустя 1 минута, 41 секунда (3.02.2011 - 20:56) sharki написал(а):
nugle
По идее если ты правильно все сделал, то тот маленький блок с данными корзины , должен заменятся на новый. Вообщем ты уже все знаешь, осталось запилить нормально и всё...т.е поработай с блоком див. все данные обновляются ТОЛЬКО в этом блоке.
По идее если ты правильно все сделал, то тот маленький блок с данными корзины , должен заменятся на новый. Вообщем ты уже все знаешь, осталось запилить нормально и всё...т.е поработай с блоком див. все данные обновляются ТОЛЬКО в этом блоке.
Спустя 6 минут, 11 секунд (3.02.2011 - 21:03) nugle написал(а):
в алерте он почему то мне выводит всю страницу
Спустя 12 минут, 10 секунд (3.02.2011 - 21:15) sharki написал(а):
nugle
Проверяй обработчик, и анализируй, что он тебе выводит.
Проверяй обработчик, и анализируй, что он тебе выводит.
Спустя 11 минут, 29 секунд (3.02.2011 - 21:26) nugle написал(а):
я понял почему, потому что у меня файл обработчик таже страница, т.е. индекс, а если я обработчик перемещаю на другую страницу то есть на proc_cart.php, ничего не работает, js соответственно меняю на proc_cart.php, алерт пустоту выводит!
Спустя 1 минута, 48 секунд (3.02.2011 - 21:28) sharki написал(а):
nugle
Файл обработчик должен находится в другом месте в отдельном файле, где ты формируешь некую таблицу с данными которую ты получаешь в ответе.
Т.е тебе нужно добиться именно сформированную мини табличку с товаром и больше ничего.
Файл обработчик должен находится в другом месте в отдельном файле, где ты формируешь некую таблицу с данными которую ты получаешь в ответе.
Т.е тебе нужно добиться именно сформированную мини табличку с товаром и больше ничего.
Спустя 1 минута, 4 секунды (3.02.2011 - 21:29) nugle написал(а):
я формирую и тогда появляются две таблицы, не заменяющие друг друга!
Спустя 7 минут, 47 секунд (3.02.2011 - 21:37) sharki написал(а):
вообщем чтобы увидеть ответ, открой обработчик напрямую в браузере, я имею введу
www.site.ru/ajax/obrabot4ik.php (примерный путь...) и глянь че выдаст =)
www.site.ru/ajax/obrabot4ik.php (примерный путь...) и глянь че выдаст =)
Спустя 2 минуты, 7 секунд (3.02.2011 - 21:39) nugle написал(а):
всё спасиб, до меня стало доходить, стало чот получаться, разберусь щас, спасибо тебе!