Просмотр полной версии : [jQuery] - Задай вопрос, получи ответ
В этой теме задаём вопросы по библиотеке jQuery (http://jquery.com) (Ajax, JS, Css and etc...)
FAQ
Как проверить показан ли элемент(конкретно для выпадающей менюшки)?
<script language="javascript" src="jquery-1.2.3.min.js"></script>
<script language="javascript">
function loader(page,param)
{
alert($("#content").css("display"));
$("#content").hide("slow");
$.post(page,{ param1: param},onAjaxSuccess);
function onAjaxSuccess(data)
{
$("#content").append(data);
$("#content").show("slow");
}
}
</script>
<input type="text" id="t"><input type="button" onclick="loader('ajax.php',document.getElementById('t').val ue)">
<span id="content"></span>
function loader(page,param)
{
if($('#content').is(':hidden'))
{
function onAjaxSuccess(data)
{
$("#content").append(data);
$("#content").show("slow");
}
$.post(page,{ param1: param},onAjaxSuccess);
}
else
{
$('#content').hide("slow");
$('#content').empty();
}
}
astrologer
20.04.2008, 18:54
$('#content').is(undefined) Выражение выше никогда истинным не будет, вот код из самой jQuery: is: function( selector ) {
return selector ?
jQuery.multiFilter( selector, this ).length > 0 :
false;
},
+ не указанные параметры всегда передаются как undefined
$(document).bind("ready", function(){
loginStart();
});
function loginStart()
{
$("#loginButton").click(
function()
{
// Фунция затемнения экрана, описаная в другом месте, так как повторно испрльзуеться
feed();
alert("in");
}
);
}
Вопросы:
1. Правильно ли составлен код?
2. Почему при нажатии выскакивает 2 alert("in")?
3. Как срабатывает код? Получаеться при загрузке страницы срабатывает функция loginStart(), а потом, при нажатии на кнопку, что вызывает эту функцию опять? Или кодом, что я привел выше, мы устанавливаем постоянный обработчик при нажатии на кнопку?
спс
ps
или
$("li").bind("click", function(){
// Фунция затемнения экрана, описаная в другом месте, так как повторно испрльзуеться
feed();
});
4.Эта функция должна помещаться всегда в оболочке?
5. 4. ГДЕ должна быть описана функция feed(); ???
Просто лна будет использоваться в разных местах, и дублировать ее код в каждой функции нет смысла
Все работаетЭ вот так:
$(document).bind("ready", function(){
$("#loginButton").click(function()
{
feed();
});
});
function feed()
{
alert("i");
}
Но правильно ли составлен код?
И почему функция срабатывает два раза?
astrologer
25.04.2008, 17:39
Срабатывает ровно один раз:<script src="js/jquery.js"></script>
<script>
$(document).bind("ready", function(){
$("#loginButton").click(function()
{
feed();
});
});
function feed()
{
alert("i");
}
</script>
<input type="button" id="loginButton">
Код вроде верный, может, несколько нерациональный.
Например, следующее:$(document).bind("ready", function(){
$("#loginButton").click(function()
{
feed();
});можно заменить на:$(document).ready(function()
{
$('#loginButton').click(feed);
};или$(document).bind('ready', function()
{
$('#loginButton').bind('click', feed);
};+ если функция loginStart вызывается один раз, можно оставить её анонимной.И почему функция срабатывает два раза?Недостаточно исходных данных. Могу лишь предположить, что обработчик навешен и на родительский элемент и на потомка. (События в JS "Всплывают (http://www.quirksmode.org/js/events_order.html)")
P.S.5. 4. ГДЕ должна быть описана функция feed(); ???До какого-либо её использования.
P.P.S.
feed - это "кормить", может, нужно "fade"?
brasco2k
23.05.2008, 20:11
как сделать выпадающий элемент под тип:
slideToggle("medium");
только чтобы он выпадал по горизонтали
brasco2k
24.05.2008, 13:33
$("#obj").slideIn();
не работает...
Где можно найти Manning jQuery in Action 2008 на русском? :)
astrologer
24.05.2008, 14:21
не работает...<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Пример.</title>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
$(function()
{
$('#qwe').animate({width: 200});
});
</script>
<style type="text/css">
#qwe
{
height: 150px;
background: #EEE;
border: #AAA solid 1px;
display: none;
}
</style>
</head>
<body>
<div id="qwe"></div>
</body>
</html>
brasco2k
24.05.2008, 15:50
Где можно найти Manning jQuery in Action 2008 на русском? :)
я бы посоветовал
http://anton.shevchuk.name/javascript/jquery-for-beginners/
правда это не книга, но все же...
astrologer
24.05.2008, 16:12
Я бы посоветовал исходники почитать.
brasco2k
не работает...
Ой ошибся, правильно
# slideDown(speed, callback) – показать элемент, спустив его сверху;
# slideUp(speed, callback) – показать элемент, подняв его снизу;
А вообще, вот справочник/шпаргалка по всем свойствам
http://www.gscottolson.com/jquery/jQuery1.2.cheatsheet.v1.0.pdf
Где можно найти Manning jQuery in Action 2008 на русском?
Первый спринт посвящён замечательному javascript фреймворку - jquery.
Главными источникоми информации, будут являться книга jQuery in Action и официальный сайт jquery.
http://hrundel.eth0.net.ua/blog/2008/03/01/jquery/?reply_to=3
Вот довольно много инфы о jquery на русс
http://drtermit.ya.ru/replies.xml?item_no=26&ncrnd=8484
http://habrahabr.ru/blog/jquery/41688.html
http://flora.org.ru/2008/02/25/15-dnej-s-jquery/
http://www.linkexchanger.su/category/jquery
кcта сама книга
http://kernelhost.org/books/Manning.jQuery.in.Action.Feb.2008.pdf
вполне читабельна и на инглише...
главное примеры
PHP библиотека для jQuery
Данная библиотека очень схожа по назначению с Xajax, только на клиентской части используется jQuery и небольшой класс для разбора ответа сервера
http://anton.shevchuk.name/php/php-library-for-jquery/
jQuery - AJAX - PHP:
http://jquery.hohli.com/
Вопрос нужно выбрать все инпуты(класса option) из формы,значение которых не пустое
что-то типа
var count = $(".option").find("@value!=''").length;
но так length всегда 0
возможно из-за того, что value при загрузке у всех пустое
astrologer
12.06.2008, 19:18
$('input.option[@value]');
Наверно это уже обсуждалось:
Если мы используем ajax, то данные передаються в utf8, можно ли передавать данные в windows-1251
Проблема возникла в том, что когда просто передаю форму, то данные идут на сервер в ютф8, я их обрабатываю и все нормально...
Но когда к форме прикрепляю файл, то данные идут в windows-1251
Вопрос:
Как заставить передавать в одной кодировке(в любой) форму, внезависимости передаеться или нет file
lsass.exe
30.06.2008, 20:44
на сайте есть форма авторизации, после ее заполнения даные уходят на скрипт enter.php там проверяются даные и либо выводится ошибка, или если все ок, должно произойти обновление страницы сайта полностью...Пробывал писать <meta http-equiv='refresh' content='0; URL=./'> не помогает...Если юзать header("location: ") то в div'e где выводятся сообщения об ошибке будет вся страница сайта )
Почему бы потом не вызывать javascript функцию, которая и будет обрабатывать ответ? Так даже и правильней (разделение клиентской и серверной части)
function showResponse(responseText, statusText){
var json = eval( "(" + responseText + ")" );
if(json.error==0) {
window.reload(true);
} else {
alert(json.messadge); // или $("#divError").html(json.messadge);
}
}
Где options и submitHandler
var options = {
type: "POST",
url: "/cAjax.class.php?module=MyProfile&method=checkEditMyProfile&id={id}",
success: showResponse,
clearForm: 1,
timeout: 3000
};
$(form).ajaxSubmit(options);
В PHP5 и функция для преобразования в json есть
json_encode(array('error'=>1, 'messadge'=>self::cp12512utf($error));
----
Еду домой, если нужно вечером могу выложить полный скрипт обработки форм(валлидация+отправка+о работка результата)
Есть div с overflow: hidden; Внутри него располагаются создаваемые пользователем DOM-элементы. Каким образом можно с помощью jQuery определить является ли DOM-элемент видимым или невидимым после того, как он оказался за пределами div'а в котором он находится?
З.Ы. с :visible не получается
[Raz0r]
Невидимым, я так понял будет, тот элемент, который будет отображаться, за пределами установленной высоты и ширины родительского блока.
Как вариант можно узнавать топлефт и топботтом родительского дива, ширину и высоту мы знаем(или узнаем тем же способом), второй шаг - определяем те же параметры для дочернего элемента, и на основе сравнения(тут несколько алгоритмов) - принимаем окончательное решение.
Метод действенный, но не факт, что самый эффективный
Не получается доделать систему рейтинга, принцип как на Баше.
В HTML коде присутствуют несколько <span> с разными ID. Примерно так:
<a href="#" onclick="rating('+',12)">+</a><span id="12">1</span><a href="#" onclick="rating('-',12)">+</a>
<a href="#" onclick="rating('+',13)">+</a><span id="13">2</span><a href="#" onclick="rating('-',13)">+</a>
<a href="#" onclick="rating('+',14)">+</a><span id="14">0</span><a href="#" onclick="rating('-',14)">+</a>
<a href="#" onclick="rating('+',15)">+</a><span id="15">1</span><a href="#" onclick="rating('-',15)">+</a>
Соответственно по каждому спану по бокам + и - для установления рейтинга.
Рейтинг устанавливается примерно так:
function rating(znak,quote)
{
$.post("ajax.php", { to: znak, id: quote },
function(data){
$('#'+quote).html(data)
});
}
т.е. когда кликаеш по плюсю, то в функцию передается собственно знак (+ или -) и ID спана. Ну далее это все идет на скрипт, который уже там устанавливает новый рейтинг, и возвращает рейтинг который вставляется в <span> с id из которого собственно говоря был совершен вызов.
Все выше перечисленное прекрасно работает.
Но я хочу вставить индикатор загрузки, когда совершается через AJAX.
А Индикатор загрузки я хочу запихнуть как раз между <span></span>. Что бы пока скрипт получает новые данные, там вместо рейтинга кружился какойнить шарик.
т.е. принцип примерно такой:
-Скрипт отсылает данные на обработчик.
-Между спанами появляется этот самый шарик.
-Скрипт получает новые данные.
-Убирает шарик.
-Вставляет новые данные.
Не получается сделать четко, иногда кружки появляются сразу во всех спанах, не понятно почему и т.п. ошибки.
Не получается сделать четко, иногда кружки появляются сразу во всех спанах
А ты указываешь в каком именно спане должен появляться лоадер?
Вначале функции rating сделай включение загрузки своего кружка,
например
function rating(znak,quote)
{
$("#"+quote).html('<img src="/_site/templates/images/ajax_loading.gif" alt="Loading" id="ajaximage"/>');
При отсылке используй jQuery.post( url, [data], [callback], [type] )
где callback, которая возвпащает резал, например так
$("#"+quote).html(resalt); (и кружок погасили и резалт вывели)
пс
и не используй onclick="rating('+',12)", для этого есть $(document).ready(function(){});
Такие обработчики, как и стили должны быть отделены непосредстенно от контента
Последний элемент в перечислении
$(".status").each(function(){
// alert( $(this:last) );
});
Как узнать, когда подойдет очередь последнего элемента?
пс
$(".status").length - не предлагать, сами с усами :)
astrologer
03.07.2008, 18:00
$(".status").each(function()
{
if($(this).is(':last'))
{
process(this);
}
});$(".status").length - не предлагать, сами с усамиПочему?var jq = $('.status'), last = jq.size() - 1;
jq.each(function(i)
{
if(i == last)
{
process(this);
}
});
$.fn.ajaxSubmit = function(e) {
this.submit(function(){
$("#formErrors_ajax").removeClass().addClass('ajax_message_box').text( 'Ждемс...').fadeIn("slow");
var params = {};
$(this).find("input[@checked], input[@type=\'text\'], input[@type=\'hidden\'], input[@type=\'password\'], input[@type=\'submit\'], option[@selected], textarea").filter(":enabled").each(function() {params[ this.name || this.id || this.parentNode.name || this.parentNode.id ] = this.value;});
$.post("./XXX", params, function(xml) {
strError = null;
oFocus = null;
$("AjaxResponse", xml).each(function() {
strError = this.getAttribute("error");
oFocus = this.getAttribute("focus");
strRedirect = this.getAttribute("redirecturl");
});
if (strError.length == 0) {
$("#formErrors_ajax").fadeTo(200,0.1,function() {$(this).html('').addClass('off').fadeTo(900,1);}) ;
redirectu = "YES"; /*** редиректить ***/
} else {
redirectu = "NO"; /*** не редиректить ***/
$("#formErrors_ajax").fadeTo(200,0.1,function() {$(this).html(strError).addClass('ajax_error').fad eTo(900,1);});
if (oFocus) $("#" + oFocus).get(0).focus();
}
});
if (redirectu == "NO") { /*** невидно переменную redirectu ***/
return false;
} else {
return true;
}
});
return this;
}
немогу понять почему не видно переменую redirectu..
Shadow_p1raT
25.07.2008, 15:01
Думаю я по адрессу,вообщем я получаю список из формы
64.66.192.62:32080
200.63.213.2:553
201.45.188.172:3128
200.129.178.70:3128
79.134.33.44:3128
201.114.194.163:3128
141.24.249.130:3128
141.24.33.162:3128
118.98.212.242:3128
141.76.45.17:3128
Возможно ли этот список превратить в массив как на php?типа array([0]=>127.0.0.0,[1]=>следующий проксик,а потом отпровлять их по очереди моему скрипту.
Если это возможно,то как это реализовать на jQuery?
Зарание благодарен.
Shirmanov
27.07.2008, 17:35
Кто может привести кусок кода на Jquery для аплоада файлов на сервер, БЕЗ ИСПОЛЬЗОВАНИЯ СТОРОННИХ ПЛАГИНОВ, только с помощью одной библиотеки jquery :confused: . Заранее благодарен.
Кто может привести кусок кода на Jquery для аплоада файлов на сервер, БЕЗ ИСПОЛЬЗОВАНИЯ СТОРОННИХ ПЛАГИНОВ, только с помощью одной библиотеки jquery :confused: . Заранее благодарен.
jquery - это javascript, а javascript'ами, НЕЛЬЗЯ загрузить файл на сервер (может я конечно отсал от эизни, но врятли :)), можно его(файл) "послать на сервер", например post'ом, но на уровне сервера, все равно нужно иметь скрипт (например написанный на php), который обработает этот запрос...
Примеры таких скриптов (классов) в соседней теме
Shirmanov
28.07.2008, 16:41
jquery - это javascript, а javascript'ами, НЕЛЬЗЯ загрузить файл на сервер (может я конечно отсал от эизни, но врятли :)), можно его(файл) "послать на сервер", например post'ом, но на уровне сервера, все равно нужно иметь скрипт (например написанный на php), который обработает этот запрос...
Примеры таких скриптов (классов) в соседней теме
Да это понятно, что нужет скрипт я с этим не спорю, как написать отсылку на Jquery этого файла?
Да это понятно, что нужет скрипт я с этим не спорю, как написать отсылку на Jquery этого файла?
А чем просто
<form id="myform" enctype="multipart/form-data" method="post" action="">
<input name="file" type="file"/>
</form>
не устраивает? и что подразумевается под отсылкой? автоматом без нажатия кнопки?
Shirmanov
28.07.2008, 20:06
Что бы эта отсылка файла выполнялась без перезагрузки страницы, но по нажатию кнопки, что бы автоматом показалась что все успешно произошло, а если это картинка то показался бы еще и уменьшеное изображение. И все это должно быть без перезагрузки!
Vanofuture
29.07.2008, 03:07
Кто-нибудь, подскажите, можно ли этот код как-то элементарно выразить через jQuery?
img=document.getElementsByTagName('img');
for(i=0;i<img.length;i++){
if(img[i].parentNode.nodeName=='A' && img[i].parentNode.className=='link'){
img[i].parentNode.style.borderBottom='0px';}}
мне нужен скрипт прокрутки фоток горизонтальный, где мона найти?
мне нужен скрипт прокрутки фоток горизонтальный, где мона найти?
А поконкретнее, ведь для простого скрола, достаточно фоткам в стиле указать флоат - лефт и поместь в див со стилем оверфлоу авто
а можно и так
_http://www.drive.ru/bmw/photos/?id=1482900
там можешь скрипт и взять
Столкнулся с проблемой... при подгрузке данных через $.ajax, эффекты от библиотек http://masterfidgeter.com/projects/captify/ ... http://leandrovieira.com/projects/jquery/lightbox/ не распространяются на новые элементы... (так то можно каждый раз через onClick() зараннее написать например для lightbox вызов ф-и вручную... но это уже не то...)
$(document).ready(function(){
$.Lightbox.construct({show_linkback: false.....})
function getIdSet(div_x,type_x,date_x,url_x)
{
$.ajax({type: type_x,data: date_x+'&ajax=true',url: url_x,
success: function(dt) {$(div_x).html(dt);}
});
}
p.s. (Вот тут... http://www.takemusu-penza.ru/)
Вот "ручное" переопределение... нужно добавить в подгружаемый элемент... не есть гуд... по идее должна быть ф-я перерасчёта всех элементов... но какая...?
<script type="texy/javascript">
$(document).ready(function()
{
$("div.....").lightbox();
$("img....").captify({...............});
})
</script>
Можете ли вы сделать JQ скрипт который может заменить html код.Например код в ява скрипте один заменить на другой.
помогите создать запрос на JQUERY:
1. POST передача
2. Прогресс бар чтобы получало под ид (id="bar")
3. чтобы передавало данные в файл jres.php
4. Передавало id=4 (4 это любая цифра)
5. И как оно результат будет выводить? Мне надо чтобы например просто писало echo"Город выбран"; и всё...
спасибо всем кто поможет... я заодно и научусь делать пост запросы через эту библиотеку)
Не совсем понял что ты хочешь сделать с прогрес бар, покажу тебе основную суть, со списками. Дальше самому не сложно разобраться.
<script src='js/jquery.js' type='text/javascript'></script>
<script type="text/javascript">
$(document).ready(function(){
showCitiesById($('#cityId').val());
});
function showCitiesById (val) {
$.ajax({
type: "POST",
url: "jres.php",
data: "cityId="+val,
success: function(html){
$("#cityContainer").html(html);
}
});
}
</script>
<select name="cityId" id="cityId" onchange="showCitiesById(this.value)">
<option value="Moscow">Moscow</option>
<option value="Vegas">Vegas</option>
</select>
<!--Здесь выводим -->
<div id="cityContainer">
</div>
файл jres.php
<?php
//Здесь обрабатываешь полученные данные, заносишь в бд и т. д.
$cityId = $_POST['cityId'];
echo "Сейчас выбран город: " . $cityId;
?>
спасиб... а как бы сделать чтобы картинку загрузки туда прикрутить к запросу?
$("#loading").ajaxStop(function(){
$(this).hide();
});
ток куда это в запросе засунуть?
а так можно сделать запрос?
<script type="text/javascript">
$(document).ready(function(){
showCitiesById($('#cityId').val());
});
function showCitiesById (val) {
$('#load-layer').show("fast");
$.ajax({
type: "POST",
url: "jres.php",
data: "cityId="+val,
success: function(html){
$("#cityContainer").html(html);
}
});
$('#load-layer').hide("fast");
}
</script>
Берешь картинку отсюда http://ajaxload.info/. Далее задаем событие при клике по кнопке, на сколько я понял у тебя будут передаваться данные из формы. Потом добавляем в контейнер, картинку с того сайта и передаем данные. Делаем эффект fadeout убераем картинку.
<html>
<head>
<title></title>
<script src='js/jquery.js' type='text/javascript'>
<script type="text/javascript">
$(function() {
$('#submit').click(function() {
$('#container').append('<img src="loading.gif" alt="Идет загрузка" id="loading" />');
var name = $('#name').val();
$.ajax({
url: 'jres.php',
type: 'POST',
data: 'name=' + name,
success: function() {
$('#loading').fadeOut(500, function() {
$(this).remove();
});
}
});
return false;
});
});
</script>
</head>
<body>
<div id="container">
<input type="text" name="name" id="name"/>
<input type="submit" name="submit" id="submit" value="Go" />
</div>
</body>
</html>
ммм, я понял, ток у меня через селект как ты первый раз делал функцию...
нет, у меня не форма, у меня селект как ты первый раз делал... как сделать в селекте этот загрузчик?
<script src='js/jquery.js' type='text/javascript'></script>
<script type="text/javascript">
$(document).ready(function(){
showCitiesById($('#cityId').val());
});
function showCitiesById (val) {
$('#container').append('<img src="loading.gif" alt="Loading..." id="loading" />');
$.ajax({
type: "POST",
url: "jres.php",
data: "cityId="+val,
success: function(html){
$("#cityContainer").html(html);
$('#loading').fadeOut(500, function() {
$(this).remove();
});
}
});
}
</script>
<div id="container">
<select name="cityId" id="cityId" onchange="showCitiesById(this.value)">
<option value="Moscow">Moscow</option>
<option value="Vegas">Vegas</option>
</select>
</div>
<!--Здесь выводим -->
<div id="cityContainer">
</div>
Пацаны, проблема такая: на странице есть кнопка Открыть. При нажатии на нее появляется (с помощью jquery) блок, а сама кнопка прячется (slideUp).
Если я в этом состоянии обновлю страницу, то, естественно, все вернется, т.е. кнопка будет, блока нет.
Надо сделать так, чтобы при нажатии на батон в куку записывалось состояние блока (видим\невидим) и также кнопки (видима\невидима). Т.е. при обновлении страницы это состояние считывается из куки и все ок отображается.
+ в блоке, который открывается, есть кнопка Закрыть, при нажатии на которую этот блок закрывается и появляется наша кнопка Открыть, и кука удаляется.
Никак мне это не организовать :(
Чего тему "важной" ни сделают? о_О
2 Feras
Немного коряво написал, времени мало было. Для работы тебе еще понадобится jquery.cookie.js (http://plugins.jquery.com/project/Cookie) .
<html>
<head>
<script src="./js/jquery.js"></script>
<script src="./js/jquery.cookie.js"></script>
<script>
$(function(){
//Если нажата кнопка open и есть кука
if ($.cookie('submitOpen-' + 1)) {
$('#close').show("slow");
$('#open').css("display","none");
}
$('#open').click(function() {
cookieSet(1);
$('#open').slideUp();
$('#close').show("slow");
});
$('#close').click(function() {
cookieDel(1);
$('#close').slideUp();
$('#open').show("slow");
});
});
function cookieSet(index) {
$.cookie('submitOpen-' + index, 'open', {expires: null, path: '/'});
}
function cookieDel(index) {
$.cookie('submitOpen-' + index, null, {expires: null, path: '/'});
}
</script>
</head>
<body>
<div>
<input type="submit" name="open" id="open" value="open" />
</div>
<div>
<input type="submit" name="close" id="close" value="close" style="display:none"/>
</div>
</body>
</html>
Pashkela
23.07.2009, 22:55
Други, помощь треба:)
Чтобы долго не расписывать, есть типо сайт анекдотов, с форумом и etc, есть система голосования за каждый анек, вопрос:
Система рабочая, но не красивая - т.е. при выставлении оценки анекдоту происходит открытие lala.php, в котором через GET цепляются ID анекдота и его оценка, потом обычные sql-запросы, после чего скрипт автоматически самозакрывается, но всё равно экран дергается и всё такое, как привязать сюда Jquery? Т.е. чтобы проголосовал и ничего не открывалось и не всплывало, а просто молча происходила обработка оценки и менялся рейтинг анекдота
С jquery дело имел только один раз, в форме авторизации, проверка логина на существоание в БД также без перезагрузки, умом как бы понимаю, что да как, но реализовать не могу - тут формы нет.
Чтобы было понятно, о чем речь, вот сайт, где это надо сделать:
http://old-ostrie.ru/kucha-0.html
Буду признателен за любые наводки в тему
ЗЫЖ В гугле "jquery система рейтинга" набирал, пост в этой теме про баш читал, но всё равно мало информации
id и выставленный балл чётко могу зацепить, но на php
FireFenix
24.07.2009, 00:46
fucntion set_rate(id, rate)
{
$.ajax(
{
type:"POST",
url:"set_rate.php",
data:"id=" + id + "&rate=" + number,
success:function(response)
{
$("#rate_show").val(response); //элементу с id="rate_show" присваиваем новый рейтинг
}
}
);
}
set_rate.php
<?php
if (isse($_POST['id']) && isse($_POST['rate']))
{
$query = 'UPDATE table SET rate=(rate + ' . $_POST['rate'] . ')/0.9) WHERE id="' . $_POST['id'] . '"';
mysql_query($query);
$query = 'SELECT * FROM table WHERE id="' . $_POST['id'] . '"';
$result = mysql_query($query);
$fetch = mysql_fetch_array($result);
echo($result);
}
?>
где-то так
Pashkela
24.07.2009, 01:00
но есть же еще форма вывода, сама kucha-0.html, типо в ней что, ничего менять не надо???
Pashkela
24.07.2009, 01:28
Если посмотреть на "Зацени анекдот: [1] [2] [3] [4] [5]"
и подвести мышь к [1] например, то будет такая ссылка высвечена (в опере по крайней мере:
http://old-ostrie.ru/ocenka-5623-1.html
где 5623 - это ID анека
а 1 - это выставляемая оценка
треба пример с AJAX чтобы происходила передача ID и выставленной оценки в файл ocenka.php, он бы делал то, что и сейчас делает - т.е. просто апгрейтит базу, прибавляет баллы за анекдом по его ID, но без загрузки самого ocenka.php + без перезагрузки страницы чтобы менялся (сразу) рейтинг анекдота
FireFenix
24.07.2009, 01:47
index.html
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>
<script language="javascript">
function set_rate(id, rate)
{
$.ajax(
{
type:"POST",
url:"rate.php",
data:"id=" + id + "&rate=" + rate,
success:function(response)
{
$("#rate_show").html(response); //диву с id="rate_show" меняем контент на обновлённое количество голосов
$("#vote").html("Проголосованно"); //диву с id="vote" меняем контент (линки голосования) на "Проголосованно"
}
}
);
}
</script>
Рейтинг : <div id="rate_show" style="display:inline">[10]</div>
<br>
Великий русский полководец Суворов, одержав победу в сражении при Рымниках, во время Русско-Турецкой войны 1787-1792 г. , получил наименование Суворов-Рымникский. Григорий Потёмкин, добравшись до Крыма, получил от Екатерины титул князя и наименование Потёмкин-Таврический.
А вот дошёл бы Маршал Жуков до Колорадо...
<br>
<div id="vote">
Зацени анекдот :<br>
<a href="javascript:set_rate(5623, 1);">[1]</a>
<a href="javascript:set_rate(5623, 2);">[2]</a>
<a href="javascript:set_rate(5623, 3);">[3]</a>
<a href="javascript:set_rate(5623, 4);">[4]</a>
<a href="javascript:set_rate(5623, 5);">[5]</a>
</div>
rate.php
<?php
echo ($_POST['id'] . ' - ' . $_POST['rate']);
//любые операции с полученным контентом
?>
1) добавить див в количество голосов анека (или другой эелмент)
2) добавить див для голосования под текстом
3) добавить адресс ссылок на JS ну и как-нить передевать id + rate
Pashkela
24.07.2009, 02:07
Непонятно, ничего не происходит, в rate.php даже прописал открытие файла - ничего не создается, как будто по нажатию кнопки обращение к rate.php вообще не производится.
Pashkela
24.07.2009, 02:22
В аське получше общаться:) Большое спасибо, теперь понял. Риспект
Вопрос, структура HTML вот такая:
<table class="contentpaneopen">
<tbody><tr>
<td class="contentheading" width="100%"><span>НАЗВАНИЕ 2<span></a></td>
</tr></tbody>
</table>
<div class="desc">
ОПИСАНИЕ 2
</div>
<table class="contentpaneopen">
<tbody><tr>
<td class="contentheading" width="100%"><span>НАЗВАНИЕ 1<span></td>
</tr></tbody>
</table>
<div class="desc">
ОПИСАНИЕ 1
</div>
Задумка, что бы при нажатии на Название # (span), открывалось содержимое <div class="desc">, но только того, над которым было нажато название.
По умолчанию описание все скрыто
$(.desc).hide();
По необходимости можно изменить структуру HTML.
Надо пока скрипт ждет данных по AJAX. Крутил загрузку. Загрузка это не картинка, а поочерёдная замена следующих чаров: | / - \ .. Аля загрузка в ДОС.
Сейчас просто воткнуна фраза.
$('#load').html('Loading, please wait.');
И висит собственно, пока не придет дейт со скрипта.
Пытался изобразить что то на подобии
while(1)
{
$('#load').html('|');
$('#load').html('/');
$('#load').html('-');
$('#load').html('\');
}
Но все без исходно.
Deathdreams
22.12.2009, 21:21
Solker,
var res = false;
while(!res){
$('#load').html('|');
$('#load').html('/');
$('#load').html('-');
$('#load').html('\');
res = r.responseText; //ответ сервера в этой переменной
}
Сделал интуитивно, JQuery и жабаскрипт знаю только var да function :)
var sLoading = {
cfg: {
symbols: "|/-\\", // syms for use
speed: 150 // milisec-s
},
to: null,
go: function (id, i) {
var s = sLoading.cfg.symbols.split("");
i = i? (i >= s.length? 0 : i) : 0;
s = s[i];
document.getElementById(id).innerHTML = s;
sLoading.to = setTimeout(sLoading.go, sLoading.cfg.speed, id, ++i);
},
stop: function () { clearTimeout(sLoading.to) }
}
sLoading.go('load');
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot