Просмотр полной версии : Обработка при нажатии на ссылку
Есть страница run.php. На ней имеется ряд ссылок.
<a href="" id="d1">1</a>
<a href="" id="d2">2</a>
<a href="" id="d3">3</a>
<a href="" id="d4">4</a>
Ссылки открывают эту же страницу, через скрипт, который берет инфу с другой страницы
$( function ready() {
$('.all').load( "all.php #infa2");
$('#d1').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa1");});
$('#d2').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa2");} );
$('#d3').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa3");} );
$('#d4').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa4");} );
});//END
При перезагрузке страницы нужно заново нажимать на эти ссылки
Как реализовать при перезагрузке что бы выводилась последняя нажатая ссылка?
Как реализовать при перезагрузке что бы выводилась последняя нажатая ссылка?
Как вариант, хранить где-то, что загружалось последним... После перезагрузки считывать эту информацию и загружать нужное...
И переписать таки сей говнокод. ;)
Как вариант, хранить где-то, что загружалось последним
Подскажите хотя бы примером, а то JS вообще не понимаю, вот уже 2ой день сижу с данной проблемой
С говнокодом - согласен
а то JS вообще не понимаю
Тогда смысл объяснять?
Попытка №1
http://htmlbook.ru/html5/storage
http://ruseller.com/lessons.php?id=593
Тогда смысл объяснять?
Просто я по PHP,а тут такая задача оказалась, никто не может хотя бы примера показать по данному коду
Ну на сколько я понял, то при клике по первой ссылке будет записываться куки таким образом $('#d1').click(function (eventObject) {document.cookie = "1";
var one = get_cookie ( "1" );
eventObject.preventDefault();
$('.all').load("all.php #infa1");
});
А вот как потом вывести нужную?
Просто я по PHP
Как вариант в сессию записывай нужное состояние... Потом это используй.
document.cookie = "1"; - это означает установку временной куки, которая не будет сохраняться в браузере, то есть ушли со страницы и кука умерла.
Sn9, по ссылкам, что я дал выше, все описано. Как "записать"... Как "прочитать"...
Но даже серверным языком это можно решить. Например используя возможности сессии...
никто не может хотя бы примера показать по данному коду
Вот пример с локалсторадж...
http://javascript.ru/forum/jquery/55740-zapominanie-stilya-knopok-bootstrap-3-v-cookie-2.html#post370808
Вот пример с локалсторадж...
Вот так будет корректно?
<a href="" id="d1">ПЕРВАЯ</a>
<script type='text/javascript'>
$(function()
{
$('#d1').click(function (eventObject) { //при клике на ссылку
eventObject.preventDefault();
$('.all').load("all.php #infa1");
var one = "$('.all').load( "all.php #infa1")"; //запишется в переменную one текст
localStorage.setItem("all", one); //запишется в localStorage ключ all со значением из one
});
var oneL = localStorage.getItem("all"); //возмется ключ all и присвоется в oneL
alert(oneL); //должно вывести что находится в oneL
});
</script>
Или подскажите как правильно заэкранировать в 8ой строке
Сделал так, по логике должно при клике на первую ссылку вместо oneL выводиться строка которую я записал в локалсторадж после перезагрузки страницы, но почему то не выводит, хотя если через alert пробовать, то выводит строку
<a href="" id="d1">один</a>
<a href="" id="d2">два</a>
<a href="" id="d3">три</a>
<a href="" id="d4">четыре</a>
<script type='text/javascript'>
$(function one() {
$('#d1').click(function (eventObject) { //при клике на ссылку
eventObject.preventDefault();
$('.all').load("all.php #infa1");
var one = ' $(\'.all\').load( "all.php #infa1"); '; //запишется в переменную one текст
localStorage.setItem("one", one); //запишется в localStorage ключ all со значением из one
});
var oneL = localStorage.getItem("one");
$( function ready() {
oneL;
$('#d1').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa1");} );
$('#d2').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa2");} );
$('#d3').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa3");} );
$('#d4').click( function(eventObject) {eventObject.preventDefault();$('.all').load( "all.php #infa4");} );
});//END
});
</script>
<div class="all"></div>
Вот так будет корректно?
Что-то туго пока идет... :(
Так вот понятно будет?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
var url=localStorage.getItem("url")||"all.php";
$('#info').text(url);
$('.test').click(function() {
var url="all.php #infa"+$(this).text();
$('#info').text(url);
localStorage.setItem("url", url);
});
});
</script>
</head>
<body>
<a href="" id="d1" class='test'>1</a>
<a href="" id="d2" class='test'>2</a>
<a href="" id="d3" class='test'>3</a>
<a href="" id="d4" class='test'>4</a>
<div id="info"></div>
</body>
</html>
Так вот понятно будет?
Благодарю, всё получилось как нужно
Но теперь возник еще один вопрос, я когда меняю текст внутри href, то сразу всё ломается. Есть какой то способ изменить текст на нужный?
switch ($_GET['info']) {
case 1:
$_SESSION['info'] = 1;
echo 'Текст 1';
В данном случае switch не нужен.
НУ смотрите сами - значение переданного это номер, и он же определяет сообщение, ну так выгоднее сразу
$_SESSION['info'] = $_GET['info'];
и
echo $message[$_GET['info']];
Ну так в этом случае ваш пример явно неудачный, ибо зачем же switch, если case 1 при $_SESSION['info'] = 1? Кроме того, если значения произвольные, то каким образом выкрутиться и в switch, ведь и для нее это будет проблемой.
Ну так извините, и кличи массива могут иметь имена произвольные. Суть не в этом. Что в вашем примере? А в нем явно ожидаемые значения, которые и проверяются, то есть 1, 2, 3. Вопрос встал о том, что если значения изменяться или дополняться (я правильно понял?), то case ну как волшебник, сам их подставить что-ли? Понятно что нет, и что их придется писать ручками, ну и какая разница, если я добавлю в массив ключи новые?
Что switch, что ключи в массиве, это приемлемо только для ожидаемых фиксированных значений. Удобство чего-то там разместить, это уже прострация, мы говорим о простом, что было показано, и для него switch, это лишнее. Что касается default, то в случае использования массива, потребуется проверка - если есть ключ, исполняем, иначе по умолчанию.
когда меняю текст внутри href, то сразу всё ломается. Есть какой то способ изменить текст на нужный?
Тут опять не понятно, что ты делаешь и, что ломается...
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot