Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2011, 16:18
Новичок на форуме
Отправить личное сообщение для Максим2 Посмотреть профиль Найти все сообщения от Максим2
 
Регистрация: 12.05.2011
Сообщений: 4

Как передать переменную с jquery в php
Здравствуйте! Сразу скажу - я пока очень плохо разбираюсь и в jquery и в php, поэтому прошу, по возможности, дать ответ понятный для профана.

Нужно передать переменную с jquery в файл php при нажатии вкладки. При нажатии первой вкладки, одно значение переменной, при нажатии второй вкладки другое значение этой же переменной.

У меня скрипт примерно такой.

$(document).ready(function()
{
$('div.box2').hide();
// Если пользователь кликнул на секцию 1
$('ul.tabs li.current1).click(function()
{
$('div.box2').hide();
$('div.box1').show();
Здесь нужно отправить в этот файл - (сайт.ru/файл.php)
переменную x - со значением 1

});
// Если пользователь кликнул на секцию 2
$('ul.tabs li.current2').click(function()
{
$('div.box1).hide();
$('div.box2').show();
Здесь нужно отправить в этот файл - сайт.ru/файл.php)
переменную x - со значением 2

});
});

Подскажите, пожалуйста, как это сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2011, 16:28
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

Передача параметра методом GET

$.get( 'jquery.php', { one: 'one', php: 'php', jquery: 'jquery' });

то есть передаешь файлу jquery.php параметры one с значение one и т.д.

то есть можно повесить обработчик на все вкладки например если вкладки три и у каждой есть в css стиле свой ID

три вкалдки id=a1 id =a2 и id =a3

$('#a1').click(function() {   // это обработчик события клика на вкладке с id a1
       $.get( 'jquery.php', { id: 'a1'});  // отправка запроса get ом
     $('#a2').hide();
     $('#a3').hide();
});


и аналогично для остальных вкладок, но лучше однако сделать функцию которая принимает параметр и уже исходя из него отправляет запрос и скрывает все элементы кроме нужного.

если что то не работает или работает не так , пиши.
__________________
XYZ
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2011, 17:12
Новичок на форуме
Отправить личное сообщение для Максим2 Посмотреть профиль Найти все сообщения от Максим2
 
Регистрация: 12.05.2011
Сообщений: 4

Если я правильно понял, Вы предлагаете написать так:
$('.current1).click(function()
{
$('div.box2').hide();
$('div.box1').show();
$.get( 'fail.php', { one: 'one' });

$('.current2').click(function()
{
$('div.box1).hide();
$('div.box2').show();
$.get( 'fail.php', { one: 'two' });

У меня так не работает:
В fail.php для проверки написано так:
echo 'Первая переменная: '.$_GET[one];
Результат:
Первая переменная:
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2011, 17:38
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

1, При нажатии скрываются вкладки?
это для теста работы обработчика!
2. если нет то все нужно поместь в
$(document).ready(function()
 {
Здесь вставляете то что Вы написали, то есть обработчики кликов 
 });


3. Если вкладки таки скрываются , то следующее

В php лучше так
if (isset($_GET['one']))
{
echo ("Все ок");
}else{
echo ("Отстой");
}

и вариант отправки 2

jQuery.get( url, [data], [callback],[type] ) - загружает страницу, используя GET-запрос.


url - адрес страницы содержимое которой надо загрузить
[data] - необязательный параметр, данные которые надо передать загружаемой странице(в форме массива). По умолчанию (без [data]) выполняется как GET-запрос, однако, если будут переданы данные, выполнится как POST-запрос.
[callback] - функция, которая будет запущена когда данные буду подгружены.
[type] - тип данные которые возвращает URL. Возможные варианты: "xml", "html", "script", "json", "jsonp" или "text".


XML - идет загрузка XML файла, разбор файла делает jQuery
HTML - стандарт(по-умолчанию)
SCRIPT - загружается JAVASCRIPT-код
TEXT - обрабатывается как PLAIN TEXT (зачем?)
JSON, JSONP - мы не рассматриваем, для новичков это нереально круто!

Также у callback-функции появился второй параметр textstatus - содержащий отладочную информацию о загрузке url.

Возможные значения textStatus:


"timeout" - таймаут, возможно было превано соединение с сервером или компьютер отключился от интернета (да и такое бывает)
"error" - ошибка, просто ошибка
"notmodified" - URL уже загружался и с тех пор не изменился
"success" - URL успешно загружен
"parsererror" - URL загружен про при его обработке возникла ошибка, при типа данных XM


ЕСЛИ ВСЕ РАВНО НИЧЕГО НЕ ВЫЙДЕТ ТО ОПИШИ ЧТО КОНКРЕТНО НУЖНО, Я ВЕЧЕРОМ ОТВЕЧУ 100%
и все будет, ХОРОШО
__________________
XYZ
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2011, 18:05
Новичок на форуме
Отправить личное сообщение для Максим2 Посмотреть профиль Найти все сообщения от Максим2
 
Регистрация: 12.05.2011
Сообщений: 4

Спасибо за советы. Но, пока не работает - "Отстой" получается. Вкладки скрываются при нажатии.
Конкретно описываю что есть сейчас и что нужно сделать:
1. Сейчас есть две вкладки. Они работают для переключения рубрикатора ("По алфавиту" и "По популярности"). Сейчас это осуществлено таким образом, что jquery подгружает два объемных файла, один с сортировкой рубрик по алфавиту, другой с сортировкой по популярности (подключение файлов инклудом). Но эти файлы отличаются между собой только одной строчкой.
2. Вот у меня и возникла мысль: "А нельзя ли использовать только один файл где бы было прописано условие: Если переменная x=1, то сортировка по алфавиту, если переменная x=2, то сортировка по популярности.
3. Мне кажется правильным решением является создание переменной x в скрипте, при нажатии пользователем на вкладку, передача необходимой переменной в файл с рубрикатором.

Я правильно думаю (если да, то как это правильно сделать?), или существует другое решение?
Ответить с цитированием
  #6 (permalink)  
Старый 12.05.2011, 18:36
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

Вечером отпишу. только вопрос
Получается то что возращает php должно вставляться на страницу с вкладками?(это больше риторический вопрос)
Если нужно просто подгружать 1 из 2 имеющихся , то это элементарно, не нужно php. вечером напишу, где то после 19.30
Сделаю исходный пример.Так что держите связь.
__________________
XYZ
Ответить с цитированием
  #7 (permalink)  
Старый 12.05.2011, 20:17
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

$("#ВАША ВКЛАДКА КУДА БУДЕТ ЗАЛИВАТЬСЯ ФАЙЛ").load("fail.php", {one: one});


php будет генерить то что выводить и как ответ будет заливаться. Работает на фтп во всех браузерах.

А если прост оподгрузить один из файлов , то

$("#ВАША ВКЛАДКА КУДА БУДЕТ ЗАЛИВАТЬСЯ ФАЙЛ").load("Тут путь к загружаемому файлу");


Вот так должно работать, конечно если передача параметра обязательная , то первый вариант , если вдруг и он не работате, то 100% выложу исходник. Самому интересно.
__________________
XYZ
Ответить с цитированием
  #8 (permalink)  
Старый 13.05.2011, 11:42
Новичок на форуме
Отправить личное сообщение для Максим2 Посмотреть профиль Найти все сообщения от Максим2
 
Регистрация: 12.05.2011
Сообщений: 4

Я думаю, так не получиться сделать то, что я хочу.
Я наверное, изначально неправильно задачу описал (из-за собственного незнания).
Попробую написать подругому:
Сейчас у меня есть вкладки:
<div class="section">
<ul class="tabs">
<li class="current">По алфавиту</li>
<li>По популярности</li>
</ul>
<div class="box visible"><? include ("./rubrikator.php");?> </div>
<div class="box"><? include ("./rubrikator_f.php");?> </div>
</div>
за переключение вкладок сейчас отвечает скрипт:
(function($) {
$(function() {

$('ul.tabs').delegate('li:not(.current)', 'click', function() {
$(this).addClass('current').siblings().removeClass ('current')
.parents('div.section').find('div.box').hide().eq( $(this).index()).fadeIn(150);return false;
})
})
})(jQuery)

Но можно и по другому написать, например как я выше писал. Главное чтобы задачу получилось решить.

Так как файл rubrikator.php отличается от файла rubrikator_f.php только одной строчкой:
$r = $db->query ( "SELECT * FROM $db_category $sql ORDER BY category " );
в файле rubrikator.php
$r = $db->query ( "SELECT * FROM $db_category $sql ORDER BY fcounter DESC" );
в файле rubrikator_f.php

Мне бы хотелось чтобы был только один файл rubrikator.php в котором каким то образом должно быть описано условие:
Если пользователь нажал на вкладку 1, то r= .... ORDER BY category
Если пользователь нажал на вкладку 2, то r= .... ORDER BY fcounter DESC
Как это сделать?
Ответить с цитированием
  #9 (permalink)  
Старый 13.05.2011, 12:05
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

$("#ВАША ВКЛАДКА КУДА БУДЕТ ЗАЛИВАТЬСЯ ФАЙЛ").load("fail.php", {one: one});


такой вариант , главное что бы пхп отлавливал передачу параметра.
Попробуйте проверить на всякий случай и в POST и GET
Если получаете , то дальше

if ($_POST[one]=='one') // или get
{

}
else
{

}
Самое главное что бы доставить значение one
Оно же получается?
В любом случае сегодня сделаю и вечером выложу .
Будет работать так :
отправка запроса в файл пхп
формирование нужной страницы
загрузка во вкладку нужной страницы

До вечера тогда
__________________
XYZ
Ответить с цитированием
  #10 (permalink)  
Старый 27.07.2013, 22:34
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

они нашли друг друга: певица2 и некий номер

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не получается передать динамическую переменную в Jquery swess jQuery 3 25.12.2010 16:31
Передать переменную bublik jQuery 7 10.12.2010 02:43
Как сделать локальную переменную глобальной?? Дмитрий Общие вопросы Javascript 8 02.11.2010 03:33
Как передать массив данных на сервер DVVID Общие вопросы Javascript 7 08.04.2010 12:11
Как обозначить переменную выбранную в FileChooser? woo_hoo Общие вопросы Javascript 4 03.07.2008 12:58