[jQuery] - Задай вопрос, получи ответ

Discussion in 'PHP' started by banned, 20 Apr 2008.

  1. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    на сайте есть форма авторизации, после ее заполнения даные уходят на скрипт enter.php там проверяются даные и либо выводится ошибка, или если все ок, должно произойти обновление страницы сайта полностью...Пробывал писать <meta http-equiv='refresh' content='0; URL=./'> не помогает...Если юзать header("location: ") то в div'e где выводятся сообщения об ошибке будет вся страница сайта )
     
  2. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Почему бы потом не вызывать javascript функцию, которая и будет обрабатывать ответ? Так даже и правильней (разделение клиентской и серверной части)

    Code:
    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

    Code:
    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 есть

    ----
    Еду домой, если нужно вечером могу выложить полный скрипт обработки форм(валлидация+отправка+обработка результата)
     
    #22 Naydav, 30 Jun 2008
    Last edited: 30 Jun 2008
  3. [Raz0r]

    [Raz0r] Elder - Старейшина

    Joined:
    25 Feb 2007
    Messages:
    425
    Likes Received:
    484
    Reputations:
    295
    Есть div с overflow: hidden; Внутри него располагаются создаваемые пользователем DOM-элементы. Каким образом можно с помощью jQuery определить является ли DOM-элемент видимым или невидимым после того, как он оказался за пределами div'а в котором он находится?
    З.Ы. с :visible не получается
     
  4. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    [Raz0r]
    Невидимым, я так понял будет, тот элемент, который будет отображаться, за пределами установленной высоты и ширины родительского блока.

    Как вариант можно узнавать топлефт и топботтом родительского дива, ширину и высоту мы знаем(или узнаем тем же способом), второй шаг - определяем те же параметры для дочернего элемента, и на основе сравнения(тут несколько алгоритмов) - принимаем окончательное решение.

    Метод действенный, но не факт, что самый эффективный
     
  5. Solker

    Solker Elder - Старейшина

    Joined:
    4 May 2006
    Messages:
    175
    Likes Received:
    53
    Reputations:
    18
    Не получается доделать систему рейтинга, принцип как на Баше.
    В HTML коде присутствуют несколько <span> с разными ID. Примерно так:
    Code:
    <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>
    
    Соответственно по каждому спану по бокам + и - для установления рейтинга.

    Рейтинг устанавливается примерно так:
    Code:
    function rating(znak,quote)
    	{	
    		$.post("ajax.php", { to: znak, id: quote },
      		function(data){
        			$('#'+quote).html(data)
      		});
    	}
    т.е. когда кликаеш по плюсю, то в функцию передается собственно знак (+ или -) и ID спана. Ну далее это все идет на скрипт, который уже там устанавливает новый рейтинг, и возвращает рейтинг который вставляется в <span> с id из которого собственно говоря был совершен вызов.

    Все выше перечисленное прекрасно работает.

    Но я хочу вставить индикатор загрузки, когда совершается через AJAX.
    А Индикатор загрузки я хочу запихнуть как раз между <span></span>. Что бы пока скрипт получает новые данные, там вместо рейтинга кружился какойнить шарик.

    т.е. принцип примерно такой:
    -Скрипт отсылает данные на обработчик.
    -Между спанами появляется этот самый шарик.
    -Скрипт получает новые данные.
    -Убирает шарик.
    -Вставляет новые данные.

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

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    А ты указываешь в каком именно спане должен появляться лоадер?

    Вначале функции rating сделай включение загрузки своего кружка,
    например
    При отсылке используй jQuery.post( url, [data], [callback], [type] )
    где callback, которая возвпащает резал, например так
    $("#"+quote).html(resalt); (и кружок погасили и резалт вывели)

    пс
    и не используй onclick="rating('+',12)", для этого есть $(document).ready(function(){});

    Такие обработчики, как и стили должны быть отделены непосредстенно от контента
     
    #26 Naydav, 1 Jul 2008
    Last edited: 1 Jul 2008
    1 person likes this.
  7. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Последний элемент в перечислении

    Как узнать, когда подойдет очередь последнего элемента?

    пс
    $(".status").length - не предлагать, сами с усами :)
     
  8. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    $(".status").each(function()
    { 
      if($(this).is(':last'))
      {
        process(this);
      }
    });
    Почему?
    Code:
    var jq = $('.status'), last = jq.size() - 1;
    jq.each(function(i)
    {
      if(i == last)
      {
        process(this);
      }
    });
     
    1 person likes this.
  9. Trieg

    Trieg Elder - Старейшина

    Joined:
    26 Oct 2007
    Messages:
    82
    Likes Received:
    9
    Reputations:
    0
    Code:
    $.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').fadeTo(900,1);});
            if (oFocus) $("#" + oFocus).get(0).focus();
          }
        });
        if (redirectu == "NO") {   /***   невидно переменную redirectu   ***/
          return false;
        } else {
          return true;
        }
      });
      return this;
    }
    
    
    немогу понять почему не видно переменую redirectu..
     
  10. Shadow_p1raT

    Shadow_p1raT Elder - Старейшина

    Joined:
    9 Mar 2008
    Messages:
    174
    Likes Received:
    93
    Reputations:
    0
    Думаю я по адрессу,вообщем я получаю список из формы
    Code:
    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?
    Зарание благодарен.
     
  11. Shirmanov

    Shirmanov New Member

    Joined:
    15 Jul 2006
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Кто может привести кусок кода на Jquery для аплоада файлов на сервер, БЕЗ ИСПОЛЬЗОВАНИЯ СТОРОННИХ ПЛАГИНОВ, только с помощью одной библиотеки jquery :confused: . Заранее благодарен.
     
  12. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    jquery - это javascript, а javascript'ами, НЕЛЬЗЯ загрузить файл на сервер (может я конечно отсал от эизни, но врятли :)), можно его(файл) "послать на сервер", например post'ом, но на уровне сервера, все равно нужно иметь скрипт (например написанный на php), который обработает этот запрос...
    Примеры таких скриптов (классов) в соседней теме
     
  13. Shirmanov

    Shirmanov New Member

    Joined:
    15 Jul 2006
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Да это понятно, что нужет скрипт я с этим не спорю, как написать отсылку на Jquery этого файла?
     
  14. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    А чем просто
    Code:
    <form id="myform" enctype="multipart/form-data" method="post" action="">
    <input name="file" type="file"/>
    </form>
    не устраивает? и что подразумевается под отсылкой? автоматом без нажатия кнопки?
     
  15. Shirmanov

    Shirmanov New Member

    Joined:
    15 Jul 2006
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Что бы эта отсылка файла выполнялась без перезагрузки страницы, но по нажатию кнопки, что бы автоматом показалась что все успешно произошло, а если это картинка то показался бы еще и уменьшеное изображение. И все это должно быть без перезагрузки!
     
  16. Vanofuture

    Vanofuture Elder - Старейшина

    Joined:
    24 Apr 2008
    Messages:
    34
    Likes Received:
    10
    Reputations:
    0
    Кто-нибудь, подскажите, можно ли этот код как-то элементарно выразить через jQuery?
    HTML:
    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';}}
     
  17. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    мне нужен скрипт прокрутки фоток горизонтальный, где мона найти?
     
  18. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    А поконкретнее, ведь для простого скрола, достаточно фоткам в стиле указать флоат - лефт и поместь в див со стилем оверфлоу авто

    а можно и так
    _http://www.drive.ru/bmw/photos/?id=1482900
    там можешь скрипт и взять
     
    1 person likes this.
  19. DCRM

    DCRM Elder - Старейшина

    Joined:
    12 Dec 2006
    Messages:
    67
    Likes Received:
    27
    Reputations:
    -1
    Столкнулся с проблемой... при подгрузке данных через $.ajax, эффекты от библиотек http://masterfidgeter.com/projects/captify/ ... http://leandrovieira.com/projects/jquery/lightbox/ не распространяются на новые элементы... (так то можно каждый раз через onClick() зараннее написать например для lightbox вызов ф-и вручную... но это уже не то...)

    Code:
      $(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/)

    Вот "ручное" переопределение... нужно добавить в подгружаемый элемент... не есть гуд... по идее должна быть ф-я перерасчёта всех элементов... но какая...?
    Code:
    <script type="texy/javascript">
    $(document).ready(function()
    {
    	$("div.....").lightbox();
    	$("img....").captify({...............});
    })
    </script>
    
    
     
    #39 DCRM, 7 Jan 2009
    Last edited: 7 Jan 2009
  20. yura372

    yura372 New Member

    Joined:
    18 Apr 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Можете ли вы сделать JQ скрипт который может заменить html код.Например код в ява скрипте один заменить на другой.