[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ajax
nugle
Всем привет, почитал по ajax и вот попробовал сделать авто добавление в корзину, но пока что ничего не выходит
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. Что получишь в результате? Что-то выводится? А что именно - то, что надо?

Спустя 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){
var oXmlHttp = createXMLHttp();
oXmlHttp.open("GET","proc_cart.php?action=add&id=" + id,true);
}

Тебе еще надо отправку делать:
oXmlHttp.send(null);

тут почитай

Спустя 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 вставляй новые данные в блок с корзиной.

Спустя 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

Спустя 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

Спустя 6 минут, 7 секунд (3.02.2011 - 18:22) nugle написал(а):
вот у меня 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) в файле обработчике ты тупо напиши такой код
<? 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

Спустя 4 минуты, 7 секунд (3.02.2011 - 19:51) sharki написал(а):
Вот кусок разберись в нем, из ирбиса скопировал
Дальше нам нужно принять ответ сервера. Для этого напишем функцию:

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

Спустя 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 написал(а):
работает, но получается так, образуется вторая страница и накладывается на первую, но див я поставил только на вывод
<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 (примерный путь...) и глянь че выдаст =)

Спустя 2 минуты, 7 секунд (3.02.2011 - 21:39) nugle написал(а):
всё спасиб, до меня стало доходить, стало чот получаться, разберусь щас, спасибо тебе!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.