PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Шоп
Поиск в теме | Версия для печати
Avrelio
Отправлено: 22 Октября, 2011 - 23:59:47
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
[+][+]
шаблон
CODE (
tpl ):
скопировать код в буфер обмена
Цена: {price} руб.
<form method="post" action="/post.php">
<input type="hidden" class="id" value="{id}" name="id" id="id">
<input type="hidden" class="price" value="{price}" name="price" id="price">
<input type="hidden" name="do" value="shop"><br>
<input type="hidden" class="count" value="1" style="width:25px;" name="count" id="count"><br>
<input type="hidden" value="Заказать" id="button">
</form>
Данный код не полный проста выложил кусок чтоб было понятно от куда береста цена и т.д указаны выше
CODE (
php ):
скопировать код в буфер обмена
<?php
if ( $allow_active_news ) {
$sql_select = "SELECT id, autor, date, short_story, SUBSTRING(full_story, 1, 15) as full_story, xfields, title, category, alt_name, comm_num, allow_comm, allow_rate, fixed, rating, vote_num, news_read, flag, editdate, editor, reason, view_edit, tags ,price FROM " . PREFIX . "_post WHERE {$stop_list} approve AND allow_main" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config [ 'news_number' ] ;
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$stop_list} approve AND allow_main" . $where_date ;
$sql_news = "" ;
$sql_result = $db -> query ( $sql_select ) ;
while ( $row = $db -> get_row ( $sql_result ) )
{
{
$tpl -> set ( '{short-story}' , stripslashes ( "<div id=\" news-id-" . $row [ 'id' ] . "\" style=\" display:inline;\" >" . $row [ 'short_story' ] . "</div>" ) ) ; }
$tpl -> compile ( 'content' ) ;
}
$tpl -> clear ( ) ;
$db -> free ( $sql_result ) ;
}
код который по моему переводит из пост в количество цену и т.д
вот тут я думаю и ошибка
post.php
CODE (
php ):
скопировать код в буфер обмена
<?php
class db
{ }
require_once "engine/data/dbconfig.php" ;
$total = 0 ;
function count_price( $shop )
{
foreach ( $shop as $id => $count )
{
{
$query = "SELECT * FROM " . PREFIX . "_post WHERE id='$id '" ;
}
}
return $total ;
}
if ( $_SESSION [ 'shop' ] )
{
}
$do = $_POST [ 'do' ] ;
if ( $do == 'delete' )
{
$total = sprintf ( "%01.2f " , count_price
( $shop ) ) ; $goodsQuant = count ( $shop ) ; $_SESSION [ 'tot' ] = $total ;
echo $goodsQuant . ";" . $total ;
}
else if ( $do == 'recount' )
{
//echo $p_id." - ".$p_count;
for ( $k = 0 ; $k < count( $p_id ) ; $k ++ )
{
$id = $p_id [ $k ] ;
$count = $p_count [ $k ] ;
{
{
$shop [ $id ] = $shop [ $id ] + $count ;
}
else $shop [ $id ] = $count ;
}
else if ( $count == 0)
{
}
}
$total = sprintf ( "%01.2f " , count_price
( $shop ) ) ; $goodsQuant = count ( $shop ) ; //отладка системы
$_SESSION [ 'tot' ] = $total ;
//header("Location: ".$_SERVER['HTTP_REFERER']);
echo $goodsQuant . ";" . $total ;
}
else
{
//echo $_POST['id']."<br>";
//echo $p_id." - ".$p_count;
//for($k=0;$k<count($p_id);$k++)
//{
$id = $p_id ;
$count = $p_count ;
{
{
$shop [ $id ] = $shop [ $id ] + $count ;
}
else $shop [ $id ] = $count ;
}
else if ( $count == 0)
{
}
//}
$total = sprintf ( "%01.2f " , count_price
( $shop ) ) ; $goodsQuant = count ( $shop ) ; //отладка системы
$_SESSION [ 'shop' ] = $shop ;
$_SESSION [ 'tot' ] = $total ;
header ( "Location: " . $_SERVER [ 'HTTP_REFERER' ] ) ; echo $goodsQuant . ";" . $total ;
}
?>
Сама корзина по моему выводит цену и количество выбранных товаров
short.shop.php
CODE (
php ):
скопировать код в буфер обмена
<?php
$i = 0 ;
$total = 0 ;
if ( ! $_SESSION [ 'tot' ] )
$_SESSION [ 'tot' ] = 0 ;
if ( $_SESSION [ 'shop' ] )
{
foreach ( $shop as $id => $count )
{
$i ++;
}
}
$tpl -> load_template ( 'shop_short.tpl' ) ;
$tpl -> set ( '{i}' , $i ) ;
$tpl -> set ( '{total}' , $_SESSION [ 'tot' ] ) ;
$tpl -> compile ( 'shop_short' ) ;
$tpl -> clear ( ) ;
?>
Корзина для покупки выводит имя товара цену и т.д зделана для офармления заказа
CODE (
php ):
скопировать код в буфер обмена
<?php
require_once "engine/modules/shop/conf/config.php" ;
$tpl -> load_template ( 'shop.tpl' ) ;
if ( $_SESSION [ 'shop' ] )
{
}
{
$total = 0 ;
$query = "SELECT title,price FROM " . PREFIX. "_post WHERE id='$id '" ;
foreach ( $shop as $id => $count )
{
$result = $db -> query ( $query ) ;
$row = $db -> get_array ( $result ) ;
$sum = sprintf ( "%01.2f " , $row [ "price" ] * $count ) ; $total += $sum ;
preg_match ( "'\[row\](.*?)\[/row\]'si" , $tpl -> copy_template , $matches ) ; $row [ "title" ] = substr ( $row [ "title" ] , 0
, 500
) ; $replace = array ( '{name}' => $row [ "title" ] , '{price}' => $row [ "price" ] ,
'{id}' => "$id " ,
'{count}' => "$count " ,
'{cost}' => "$sum " ) ;
$tpl -> copy_template = strtr ( $tpl -> copy_template , $replace ) ; $tpl -> copy_template = preg_replace ( "'\[row\](.*?)\[/row\]'si" , "\\ 1\n " . $matches [ 0
] , $tpl -> copy_template ) ; }
}
else $proverka = FALSE ;
$tpl -> set ( '{all_total}' , $total ) ;
$tpl -> set_block ( "'\[row\](.*?)\[/row\]'si" , "" ) ;
$tpl -> compile ( 'content' ) ;
$tpl -> clear ( ) ;
$db -> free ( ) ;
?>
Js код который чтота делает как я понел перещет и т.д в жс я не силен
shop.js
CODE (
JavaScript ):
скопировать код в буфер обмена
$( document) .ready ( function ( ) {
$( ".count" ) .keypress ( function ( event)
{
if ( event.keyCode == 13)
{
shop( ) ;
}
}
) ;
$( ".count1" ) .keypress ( function ( event)
{
if ( event.keyCode == 13)
{
recount( ) ;
}
}
) ;
$( ".refresh" ) .click ( recount) ;
$( ".delete" ) .click ( deleteGood) ;
$( ".button" ) .click ( shop) ;
$( ".count" ) .blur ( function ( )
{
if ( $( this ) .val ( ) == "" )
$( this ) .val ( "0" ) ;
}
) ;
$( ".count" ) .click ( function ( )
{
if ( $( this ) .val ( ) == "0" )
$( this ) .val ( "" ) ;
}
) ;
$( "tr.line:odd" ) .css ( "background-color" , "#eeeeee" ) ;
$( ".refresh,.delete" ) .hover ( function ( )
{
$( ".refresh,.delete" ) .css ( "cursor" , "pointer" ) ;
if ( $( this ) .attr ( "class" ) == "delete" )
{
$( this ) .attr ( "src" , "./templates/shop/images/002.gif" ) ;
} else $( this ) .attr ( "src" , "./templates/shop/images/001.gif" ) ;
} ,
function ( )
{
$( ".refresh,.delete" ) .css ( "cursor" , "White" ) ;
if ( $( this ) .attr ( "class" ) == "delete" )
{
$( this ) .attr ( "src" , "./templates/shop/images/002b.gif" ) ;
} else $( this ) .attr ( "src" , "./templates/shop/images/001b.gif" ) ;
} ) ; //hover ends
} ) ;
function shop( )
{
//alert("hello");
$( ".count" ) .attr ( "disabled" , "disabled" ) ;
$( ".button" ) .attr ( "disabled" , "disabled" ) ;
var id = new Array( ) ;
var count = new Array( ) ;
var num = ( $( ".count" ) ) .length ;
for ( i= 0 ; i< num; i++ )
{
quantValue = $( ".count:eq(" + i+ ")" ) .val ( ) ;
if ( quantValue > 0)
{
count[ count.length ] = quantValue;
idValue = $( ".id:eq(" + i+ ")" ) .val ( ) ;
id[ id.length ] = idValue;
}
}
count= serialize( count) ;
id= serialize( id) ;
$.ajax ( {
type : "POST" ,
url: "./post.php" ,
data: "id=" + escape( id) + "&count=" + escape( count) + "&do=shop" ,
success: cartAddResponse,
error: function ( msg) {
alert ( msg) ;
}
} ) ;
}
function recount( )
{
$( ".count1" ) .attr ( "disabled" , "disabled" ) ;
var id = new Array( ) ;
var count = new Array( ) ;
num = ( $( ".count1" ) ) .length ;
for ( i= 0 ; i< num; i++ )
{
quantValue = $( ".count1:eq(" + i+ ")" ) .val ( ) ;
count[ count.length ] = quantValue;
idValue = $( ".id:eq(" + i+ ")" ) .val ( ) ;
id[ id.length ] = idValue;
}
count= serialize( count) ;
id= serialize( id) ;
$.ajax ( {
type : "POST" ,
url: "./post.php" ,
data: "id=" + escape( id) + "&count=" + escape( count) + "&do=recount" ,
success: cartRecountResponse
} ) ;
}
function removeTr( obj) //удаление строки в таблице корзины
{
var link= obj.parent ( ) .parent ( ) ;
link.css ( 'background-color' , '#ff6666' ) ;
link.fadeOut ( ) ;
}
function deleteGood( )
{
$( ".count1" ) .attr ( "disabled" , "disabled" ) ;
var id = $( this ) .parent ( ) .siblings ( ) .children ( ".id" ) .val ( ) ;
$.ajax ( {
type : "POST" ,
url: "./post.php" ,
data: "id=" + escape( id) + "&do=delete" ,
success: cartDeleteResponse
} ) ;
removeTr( $( this ) ) ;
}
function showNewPrice( textVal)
{
var tmp = textVal.split ( ';' ) ;
var tovar = tmp[ 0] ;
var summa = tmp[ 1] ;
$( "#tovar" ) .text ( tovar) ;
$( "#summa" ) .text ( summa) ;
return summa;
}
function cartDeleteResponse( response)
{
var summa = showNewPrice( response) ;
$( "#summa_cart" ) .text ( summa) ;
$( ".count1" ) .attr ( "disabled" , "" ) ;
}
function cartAddResponse( response)
{
showNewPrice( response) ; //обновляем цену и кол-во в малой корзине
$( ".count" ) .attr ( "disabled" , "" ) ;
$( ".button" ) .attr ( "disabled" , "" ) ;
$( ".count" ) .val ( "0" ) ;
}
function cartRecountResponse( response)
{
var num = ( $( ".count1" ) ) .length ;
for ( var i= 0 ; i< num; i++ )
{
var quantVal = $( ".count1:eq(" + i+ ")" ) .val ( ) ;
if ( quantVal== 0 ) //удаляем строки с нулевым количеством
{
removeTr( $( ".count1:eq(" + i+ ")" ) ) ;
}
else
{
//далее считаем новую сумму по каждому товару
var price = $( ".price:eq(" + i+ ")" ) .text ( ) ;
var newSum = Number( quantVal) * Number( price) ;
$( ".sum:eq(" + i+ ")" ) .text ( newSum.toFixed ( 2) ) ;
}
}
cartDeleteResponse( response) ;
}
function error( desc, page, line) {
alert ( 'Error description:\t ' + desc + '\n Page address:\t ' + page + '\n Line number:\t ' + line)
return true
}
window.onerror = error;
Данный модуль при добавления товара выводит ошибку
Warning: unserialize() expects parameter 1 to be string, array given in /usr/home/35720/slad-no.ru/html/ engine/modules/shop.short.php on line 9 Warning: Invalid argument supplied for foreach() in /usr/home/35720/slad-no.ru/html/ engine/modules/shop.short.php on line 12
я так думаю он выводит ету ошибку иза того что сессия не водит в кукисы все данные
помагите плыз решить проблему(Отредактировано автором: 23 Октября, 2011 - 00:00:25)
Данил_123
Отправлено: 23 Октября, 2011 - 00:14:15
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011
Откуда: rostov
Помог: 9 раз(а)
/usr/home/35720/slad-no.ru/
html/ engine/modules/ shop.short.php ошибка на 9 строке и на 12, не вижу названий файлов.. Где какой?
(Добавление)
это
попробуй заменить на(Отредактировано автором: 23 Октября, 2011 - 00:22:28)
-----http://mysitecost.ru
LIME
Отправлено: 23 Октября, 2011 - 12:59:45
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Данил_123 PREFIX это константа
если ее ввести внутрь кавычек то она не будет интерполироваться
DeepVarvar пишет: Данил_123 Думать надо что пишешь.
Пы.Сы.: Маразм крепчал.
(Добавление)
Avrelio попробуйте в файле post.php поменять строчку 103 на
как в строчке 110
(Добавление)
и вообще поищите по всем файлам и если найдете
$_SESSION['shop']=$shop;
меняйте на
$_SESSION['shop']=serialize($shop);(Отредактировано автором: 23 Октября, 2011 - 13:06:18)
Данил_123
Отправлено: 23 Октября, 2011 - 14:07:14
Участник
Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011
Откуда: rostov
Помог: 9 раз(а)
LIME LIME пишет: PREFIX это константа
если ее ввести внутрь кавычек то она не будет интерполироваться
Это ладно, но я написала "замени 12 строку на
но никак не
-----http://mysitecost.ru
LIME
Отправлено: 23 Октября, 2011 - 14:10:15
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Данил_123 про художественное преувеличение слышал?
Цитата: Гротеск - преувеличение до уродства.
Avrelio
Отправлено: 23 Октября, 2011 - 15:52:45
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Окт. 2011
Помог: 0 раз(а)
[+][+]
LIME увы но ефекта нулевого
не кто не хочет помочь? могу дать фтп доступ)
(Отредактировано автором: 24 Октября, 2011 - 18:47:16)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB