Доброе утро, помогите пожалуйста. Не давно стал изучать ajax и jquery, для того чтобы сделать корзину товаров ,всё шло неплохо но тут возникла такая проблема: при добавления товара в корзину, а именно в дальнейшем выводе списка товара, то из mysql выводит название товара в неправильной кодировке (��������� �������), причём только первого добавленного, а остальные выводятся как положено. При дальнейшем изменении количества товара, кодировка изменяется и название товара становиться нормальным.
Я повторюсь, что недавно стал изучать и может что то делаю не так, или может есть способ проще, но хотелось бы заставить этот код работать правильно, потому что вроде бы разобрался что и как это работает.
Во общем вот код:
файл test5.php
<?php
include ("bd.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>В корзину</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.basket').click(function(){
// Формируем URL-запрос
var url = 'handler.php?kolvo='+ $('#inp' + $(this).attr('id')).val() +'&id=' + $(this).attr('id');
url = encodeURI(url);
// Осуществляем AJAX-запрос
$('#id_basket_conent').load(url);
return false;
});
});
</script>
</head>
<body>
<?php
$result1 = mysql_query("SELECT * FROM vidiyslyg LIMIT 5",$db);
$myrow1 = mysql_fetch_array($result1);
mysql_query("SET NAMES 'utf8'");
?>
<table border=1 width=100% class=tabl_prise>
<tr>
<td width=2%>
№
</td>
<td width=80%>
Услуга
</td>
<td width=5%>
Цена
</td>
<td width=13% >
В корзину
</td>
</tr>
<?php
$nb1=0;
do {
$nb1=$nb1+1;
echo "
<tr>
<td>
$nb1
</td>
<td>
$myrow1[Yslyga]
</td>
<td align=right>
$myrow1[Sale]
</td>
<td width=13%>
<div><input type='text' size='1' id='inp$myrow1[id]' value='1' ><a href='#' class='basket' id='$myrow1[id]'>+</a></div>
</td>
</tr>
";
}
while ($myrow1 = mysql_fetch_array ($result1));
?>
</table>
<div><a href='#' class='basket' id='del'>Очистить корзину</a></div>
<div id='id_basket_conent'>
<?php
echo "<pre> В корзине ";
print_r($_COOKIE['namber']);
echo "шт единиц товара на сумму:";
print_r($_COOKIE['old_znach']);
echo "рублей";
?>
</div>
</body>
</html>
и файл handler.php
<script type="text/javascript">
$(document).ready(function(){
$('.add').click(function () {
var $input = $(this).parent().find('input');
$input.val(parseInt($input.val()) + 1);
$input.change();
return false;
});
$('.minus').click(function () {
var $input = $(this).parent().find('input');
var count = parseInt($input.val()) - 1;
count = count < 1 ? 1 : count;
$input.val(count);
$input.change();
return false;
});
$('.change').change(function(){
// Формируем URL-запрос
var url = 'handler.php?kolvo_edit='+ $(this).val() +'&id_edit=' + $(this).attr('id');
url = encodeURI(url);
// Осуществляем AJAX-запрос
$('#id_basket_conent').load(url);
return false;
});
});
</script>
<?php
session_start();
$id = $_GET['id'];
$kolvo = $_GET['kolvo'];
$id_edit = $_GET['id_edit'];
$kolvo_edit = $_GET['kolvo_edit'];
$n = $_COOKIE['n'] + 1;
setcookie("n",$n,0,"/");
if ($id == 'del')
{
setcookie("n",0,0,"/");
setcookie("all_id",0,0,"/");
setcookie("old_znach",0,0,"/");
setcookie("namber",0,0,"/");
session_unset();
$n = "";
$kolvo = 0;
$old_znach = 0;
$namber = 0;
echo "<pre> В корзине "; print_r($namber); echo "шт единиц товара на сумму:"; print_r($old_znach); echo "рублей";
}
else
{
if (isset($_GET['id_edit']) and ($_GET['id_edit'] >0))
{
if (!mysql_connect(localhost, логин, пароль))
{
exit;
}
mysql_select_db("markevichvk_servis");
$q = mysql_query("SELECT id, Sale FROM vidiyslyg where id='$id_edit'");
$res = mysql_fetch_assoc($q);
mysql_query("SET NAMES 'utf8'");
$quality_key=1;
$join_var_get = $id_edit."|".$kolvo_edit;
if (isset($_SESSION['array']))
{
foreach($_SESSION['array'] as $key=>$value)
{
list($id_list, $caunt_list) = split ('[|]', $value);
if ($id_list == $id_edit)
{$proverka_id = 1;
$qulity = $kolvo_edit;
$arr[$key]=$id_list."|".$qulity;
$old_znach = ($_COOKIE['old_znach'] - ($res[Sale] * $caunt_list)) + ($res[Sale] * $kolvo_edit);
setcookie("old_znach",$old_znach,0,"/");
$namber = ($_COOKIE['namber'] - $caunt_list + $kolvo_edit);
setcookie("namber",$namber,0,"/");
}
else
{
$arr[$key]=$value;
$quality_key=$quality_key+1;
}
}
if ($proverka_id == 1)
{
$_SESSION['array'] = $arr;
}
else
{
$arr[$quality_key]=$join_var_get;
$_SESSION['array'] = $arr;
}
}
else
{
$arr=array();
$arr[$n]=$join_var_get;
$_SESSION['array'] = $arr;
}
}
else
{
if (!mysql_connect(localhost, логин, пароль))
{
exit;
}
mysql_select_db("markevichvk_servis");
$q = mysql_query("SELECT id, Sale FROM vidiyslyg where id='$id'");
$res = mysql_fetch_assoc($q);
$quality_key=1;
$join_var_get = $id."|".$kolvo;
if (isset($_SESSION['array']))
{
foreach($_SESSION['array'] as $key=>$value)
{
list($id_list, $caunt_list) = split ('[|]', $value);
if ($id_list == $id)
{$proverka_id = 1;
$qulity = $caunt_list+$kolvo;
$arr[$key]=$id_list."|".$qulity;
}
else
{
$arr[$key]=$value;
$quality_key=$quality_key+1;
}
}
if ($proverka_id == 1)
{
$_SESSION['array'] = $arr;
}
else
{
$arr[$quality_key]=$join_var_get;
$_SESSION['array'] = $arr;
}
}
else
{
$arr=array();
$arr[$n]=$join_var_get;
$_SESSION['array'] = $arr;
}
$old_znach = $_COOKIE['old_znach'] + ($res[Sale] * $kolvo);
setcookie("old_znach",$old_znach,0,"/");
$namber = ($_COOKIE['namber'] + $kolvo);
setcookie("namber",$namber,0,"/");
}
// Выводим результат
echo "<pre> В корзине "; print_r($namber); echo "шт единиц товара на сумму:"; print_r($old_znach); echo "рублей";
echo "<pre> массив содерж. id товара и количество:";
echo "<pre>";
print_r($arr);
echo "<pre>";
echo "<table border=1 width=100% class=tabl_prise>
<tr>
<td width=2%>
№
</td>
<td width=80%>
Услуга
</td>
<td width=5%>
Цена
</td>
<td width=13% >
В корзину
</td>
</tr>
";
$nb1=0;
foreach($_SESSION['array'] as $key=>$value)
{
list($id_list, $caunt_list) = split ('[|]', $value);
$q1 = mysql_query("SELECT * FROM vidiyslyg where id='$id_list'");
$res1 = mysql_fetch_array($q1);
mysql_query("SET NAMES 'utf8'");
do {
$nb1=$nb1+1;
echo "
<tr>
<td>
$nb1
</td>
<td>
$res1[Yslyga]
</td>
<td align=right>
$res1[Sale]
</td>
<td>
<div><a href='#' class='minus' id='$res1[id]'>-</a><input class='change' type='text' size='1' id='$res1[id]' value='$caunt_list' ><a href='#' class='add' id='$res1[id]'>+</a></div>
</td>
</tr>
";
}
while ($res1 = mysql_fetch_array($q1));
}
echo "</table>";
}
?>
вот
ссылка на сайт показывающий работу кода