Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.12.2011, 23:11
Новичок на форуме
Отправить личное сообщение для paul_ag Посмотреть профиль Найти все сообщения от paul_ag
 
Регистрация: 04.12.2011
Сообщений: 7

Сохранить id в ссылке javascript
Здраствуйте я не силен в Java и прошу вас помочь мне.Вопрос заключается в следующем,как сохранить данные в cookies при переходе по ссылке?
Пробывал 3 способа но все не работает...помогите пожалуйста найти ошибку.

пробую записать в cookies id , который взял из базы данных...

вот мой код

echo("<a href=\"detals.php\" onclick=\"document.cookie = 'CookieName = " . $row['id'] . "'><div class="detals"> подробно </a></div>");
Ответить с цитированием
  #2 (permalink)  
Старый 04.12.2011, 23:52
Кандидат Javascript-наук
Отправить личное сообщение для Maxman Посмотреть профиль Найти все сообщения от Maxman
 
Регистрация: 18.06.2010
Сообщений: 122

Сообщение от paul_ag Посмотреть сообщение
я не силен в Java
Если вам нужен Java, то вы ошиблись форумом, здесь программируют на JavaScript.

Сообщение от paul_ag Посмотреть сообщение
вот мой код
Зачем там внутри div, тем более с неправильной вложенностью?
Как я понял, вам нужно что-то вроде этого?)
echo('<a href="detals.php" onclick="setCookie(\'CookieName\', ' . $row['id'] . ');">подробно</a>');
// взято с этого сайта
function setCookie(name, value, props) {
    props = props || {}
    var exp = props.expires
    if (typeof exp == "number" && exp) {
        var d = new Date()
        d.setTime(d.getTime() + exp*1000)
        exp = props.expires = d;
    }
    if(exp && exp.toUTCString) props.expires = exp.toUTCString();
    value = encodeURIComponent(value)
    var updatedCookie = name + "=" + value
    for(var propName in props){
        updatedCookie += "; " + propName
        var propValue = props[propName]
        if(propValue !== true){ updatedCookie += "=" + propValue }
    }
    document.cookie = updatedCookie;
}
Ответить с цитированием
  #3 (permalink)  
Старый 05.12.2011, 00:38
Новичок на форуме
Отправить личное сообщение для paul_ag Посмотреть профиль Найти все сообщения от paul_ag
 
Регистрация: 04.12.2011
Сообщений: 7

Спасибо, сделал так echo('<a href="detals.php" onclick="setCookie(\'CookieName\', ' . $row['id'] . ');">подробно</a>');

На следующей странице ("detals.php" ) вставляю вот этот код <?php $ValueVariable = $_COOKIE['CookieName']; ?> но мне выдает ошибку

Notice: Undefined index: CookieName in C:\xampp\htdocs\pages\detals.php on line 2

В чем может быть проблема?
Ответить с цитированием
  #4 (permalink)  
Старый 05.12.2011, 01:13
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

время жизни куки поставь

setCookie('CookieName', 'blablah', {expires: 600}); // время в секундах
Ответить с цитированием
  #5 (permalink)  
Старый 05.12.2011, 18:47
Новичок на форуме
Отправить личное сообщение для paul_ag Посмотреть профиль Найти все сообщения от paul_ag
 
Регистрация: 04.12.2011
Сообщений: 7

Сделал так,стого по инструкции как вы сказали уважаемые прогаммисты

на первой странице поставил вот это:

echo('<a href="detals.php" onclick="setCookie(\'CookieName\', ' . $row['id'] . ',time()+3600);"><div class="detals">подробно </div></a>');

а на второй в самом начале вот это:

<?php $value = setCookie('CookieName', 'id', {expires: 600}); ?>

а потом в середине вот это:

<?php $result=mysql_query("SELECT * FROM products WHERE id == $value");

while ($row = mysql_fetch_array($result)) {


echo('<div class="infob_conteiner">');

echo('<div class="photo">');
echo('<p><img src="../images/products/'.$row['image'].'" width="150" height="100" /></p>');
echo('<p>&nbsp;</p>');
echo('</div>');

echo('<div class="information_block">');
echo('<p>'.$row['name'].' '.$row['model'].'</p>');
echo('</div>');

echo('</div>');


}

?>

И опять ничего уже 3ий день пытаюсь сделать.....
Ответить с цитированием
  #6 (permalink)  
Старый 05.12.2011, 19:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

,time()+3600)
Откуда в JavaScript функция time() ??? время нужно указать просто цифру в секундах, тоесть время хранения куки, прибавлять при этом текущую дату не нужно, нужно так:
echo('<a href="detals.php" onclick="setCookie(\'CookieName\', '.$row['id'].', 3600 );"><div class="detals">подробно </div></a>');


а это что за конструкция?
<?php $value = setCookie('CookieName', 'id', {expires: 600}); ?>
В PHP функция setCookie принимает совсем иные параметры.
Ответить с цитированием
  #7 (permalink)  
Старый 05.12.2011, 19:27
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

на первую страницу ставь:

echo('<a href="detals.php" onclick="setCookie(\'CookieName\', ' . $row['id'] . ', 3600 );"><div class="detals">подробно </div></a>');


на вторую страницу:

<?php
    $value = isset( $_COOKIE['CookieName'] ) ? intval( $_COOKIE['CookieName'] ) : 0;

    $result = mysql_query("SELECT * FROM `products` WHERE `id`=$value"); 

    while( $row = mysql_fetch_array( $result ) ) { 
        echo('<div class="infob_conteiner">');
        echo('<div class="photo">');
        echo('<p><img src="../images/products/'.$row['image'].'" width="150" height="100" /></p>');
        echo('<p>&nbsp;</p>');
        echo('</div>');
        echo('<div class="information_block">');
        echo('<p>'.$row['name'].' '.$row['model'].'</p>');
        echo('</div>');
        echo('</div>');
    }
?>
Ответить с цитированием
  #8 (permalink)  
Старый 05.12.2011, 21:10
Новичок на форуме
Отправить личное сообщение для paul_ag Посмотреть профиль Найти все сообщения от paul_ag
 
Регистрация: 04.12.2011
Сообщений: 7

Спасибо огромное! Заработало!!! но...на второй странице выходит все куков, а не определенный id...может быть необходимо создать каждый раз спецальный куки,наподобие CookieName1,CookieName2.....?
может это происходит из-за этого цикла:

<?php

$result=mysql_query("SELECT * FROM products WHERE category='Laptop'");



while ($row = mysql_fetch_array($result)) {


echo('<div class="infob_conteiner">');

echo('<div class="photo">');
echo('<p><img src="../images/products/'.$row['image'].'" width="150" height="100" /></p>');
echo('<p>&nbsp;</p>');
echo('</div>');

echo('<div class="information_block">');
echo('<p>'.$row['name'].' '.$row['model'].'</p>');
echo('</div>');


echo('<div class="price_block_2">');
echo('Цена :');
echo('</div>');

echo('<div class="price_block">');
echo(''.$row['price'].'€');
echo('</div>');





echo('<a href="detals.php" onclick="setCookie(\'CookieName\', ' . $row['id'] . ', 3600 );"><div class="detals">подробнее</div></a>');





echo('</div>');


}

?>

это первая страница,на которой мы выбираем определенный товар...
Ответить с цитированием
  #9 (permalink)  
Старый 05.12.2011, 21:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

вообще любопытно, зачем вам вообще нужна кука?

почему не сделать так:

первая страница:
<?php
    $result = mysql_query("SELECT * FROM `products` WHERE `category`='Laptop'");

    while( $row = mysql_fetch_array( $result ) ) {
        echo('<div class="infob_conteiner">');
        echo('<div class="photo">');
        echo('<p><img src="../images/products/'.$row['image'].'" width="150" height="100" /></p>');
        echo('<p>&nbsp;</p>');
        echo('</div>');
        echo('<div class="information_block">');
        echo('<p>'.$row['name'].' '.$row['model'].'</p>');
        echo('</div>');
        echo('<div class="price_block_2">');
        echo('Цена :');
        echo('</div>');
        echo('<div class="price_block">');
        echo(''.$row['price'].'€');
        echo('</div>');

        echo('<a href="detals.php?id='.$row['id'].'"><div class="detals">подробнее</div></a>');

        echo('</div>');
    }
?>


вторая страница:
<?php 
    $value = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0; 
  
    $result = mysql_query("SELECT * FROM `products` WHERE `id`=$value");  
  
    while( $row = mysql_fetch_array( $result ) ) {  
        echo('<div class="infob_conteiner">'); 
        echo('<div class="photo">'); 
        echo('<p><img src="../images/products/'.$row['image'].'" width="150" height="100" /></p>'); 
        echo('<p>&nbsp;</p>'); 
        echo('</div>'); 
        echo('<div class="information_block">'); 
        echo('<p>'.$row['name'].' '.$row['model'].'</p>'); 
        echo('</div>'); 
        echo('</div>'); 
    } 
?>
Ответить с цитированием
  #10 (permalink)  
Старый 05.12.2011, 21:24
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

у меня спина от такого количества echo зачесалась.
это же можно было заменить на один echo с большой строкой (с одинарными кавычками или heredoc)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить Javascript в HTML raggamuffin Events/DOM/Window 0 08.04.2011 00:16
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Как с помощью JavaScript сохранить какие-либо изменения в HTML документе? FirstFrost Общие вопросы Javascript 1 15.07.2010 16:23
Как сохранить кеш в JavaScript Jumong Общие вопросы Javascript 4 20.07.2008 20:29