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

Discussion in 'Javascript' started by Kaimi, 7 May 2015.

  1. Octavian

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

    Joined:
    8 Jul 2015
    Messages:
    506
    Likes Received:
    101
    Reputations:
    25
    Нашол такои скрипт подсчета товаров в корзине
    http://jsfiddle.net/7z9vhhew/
    Когда делаю инпутов больше он считает и берет data-price только первого исправите пожалуста !
     
    1. kranx

      kranx Member

      Joined:
      19 Feb 2017
      Messages:
      17
      Likes Received:
      7
      Reputations:
      0
      тебе нужно что-то вроде этого:
      Code:
              var sum = 0;
              $(".counter").each(function(){
                  var count = parseInt($(this).getAttribute('data-count'), 10);
                  var price = parseInt($(this).getAttribute('data-price'), 10);
                  sum += price*count;
              });
      
       
      1. zemsky

        zemsky New Member

        Joined:
        3 Nov 2016
        Messages:
        5
        Likes Received:
        0
        Reputations:
        0
        Добрый день.

        С фронтэндом не дружу, посему прошу сильно не пинать.

        Возникла необходимость встроить страницу подачи объявления http://irr.by/advertSubmission/step1/ в свой сайт (необходима структура каталога).

        Но javascript у сохраненной страницы не отрабатывает.

        Может кто подскажет в чем причина?
         
        1. kranx

          kranx Member

          Joined:
          19 Feb 2017
          Messages:
          17
          Likes Received:
          7
          Reputations:
          0
          если тебе надо просто скопировать ту страницу, то там много будет работы. нужно будет найти скрипт который отправляет данные на сервер, и подстроить его под себя. потом нужно будет CSS для той страницы подстроить под себя чтобы не было конфликтов с твоим сайтом. и уж потом бэкэнд сделать.
          Я думаю проще будет создать свой форм с нуля, который отправляет данные в php скрипт.
          Вот тут есть пару примеров:
          https://v4-alpha.getbootstrap.com/components/forms/
          И чтобы не нужно было использовать Javascript, отправь данные сразу через форм:
          Code:
          <form action="server.php" method="post">
          ...
          </form>
          Где server.php твой скрипт который обрабатывает данные.
          С php я думаю у тебя не будет проблем принять данные
           
          1. zemsky

            zemsky New Member

            Joined:
            3 Nov 2016
            Messages:
            5
            Likes Received:
            0
            Reputations:
            0
            kranx, это все понятно, что ты предлагаешь, но я уже так пробовал банально создать свою форму по аналогии для другого каталога. Результат: 3 дня рутинной работы - менее 5% от необходимого объема каталога. Плюнул, покопался в JS (в меру своих знаний), встроил сохраненную страницу в свой сайт, подправил CSS. API запросы браузера встроенной страницы переадресовал своему бэкэнд-скрипту, который уже якобы от имени оригинального хоста делал запрос и возвращал результат встроенной странице. Таким образом все получилось.

            С этим каталогом придется, видимо, разбираться дольше..
             
            #45 zemsky, 21 Feb 2017
            Last edited: 21 Feb 2017
            1. helpmetks

              helpmetks New Member

              Joined:
              18 Feb 2017
              Messages:
              5
              Likes Received:
              0
              Reputations:
              0
              I will pay BTC if anyone help me decipher passwords fe9a0c67bbd36e4a6fe4c30e06df1334: 9b
               
              1. chatanti

                chatanti Member

                Joined:
                13 Jul 2011
                Messages:
                30
                Likes Received:
                16
                Reputations:
                0
                Привет
                Я контролирую сайт. Я изменил поведение сайта: при совершении определенного действия я подгрузил в ифрейме 3-й домен, вместо обычного редиректа на 3-й домен(как было раньше).
                Все выглядит красиво и естесственно.
                Я могу получить значения инпут полей, которые забьют в ифрейм из основоного окна сайта?
                Общаться через postmessage между основным окном и ифреймом научился.
                При попытках получить данные из ДОМа ифрейма, неминуемо возникает что-то вроде
                " Blocked a frame with origin "http://aaaa.net" from accessing a cross-origin frame."
                Подскажите что можно попробовать, потратил на проблему уже много часов. Может быть какие-то JS библиотеки можно подключить и заюзать или при загрузке html в iframe модифицировать JS файлы или добавить свой JS скрипт.
                HALP!
                 
                #47 chatanti, 26 Feb 2017
                Last edited: 27 Feb 2017
                1. bologer

                  bologer Member

                  Joined:
                  25 Nov 2016
                  Messages:
                  62
                  Likes Received:
                  18
                  Reputations:
                  3
                  1. Нельзя получить напрямую данный из iframe с JS.
                  2. Нельзя делать GET/POST и тд запросы с AJAX на другие домены, если у них (со стороны сайта, который ты iframe'ишь) не указаны header'ы.

                  Пример header'a:

                  Code:
                  header('Content-type: text/html');
                  header('Access-Control-Allow-Origin: *');
                  Этим header'ом ты даешь доступ для запроса с любого сайта. Но чтобы прописать заголовки - тебе нужно иметь доступ к исходному коду сайта, который ты вписывал в iframe.

                  Еще один вариант - это воспользоваться библиотекой PhantomJS. Я ее как раз использую для подобных вещей. Она может скрапить, отправки формы и др. подобные операции. Я недавно писал запись о том, как с помощью нее, например, скрапить топ новости с главной Яндекса, посмотри, может поможет. Но для этого тебе понадобиться свой сервер, если ты хочешь весь процесс отправки формы автоматизировать. Вообщем я там все подробнее описываю, почитаю, может воспользуешься таким способом, потому что я другого не вижу.
                   
                  1. bologer

                    bologer Member

                    Joined:
                    25 Nov 2016
                    Messages:
                    62
                    Likes Received:
                    18
                    Reputations:
                    3
                    Проще нанять full-stack разработчика, который все для тебя сделает на фрейвфорке (если ты собираешься заниматься этим серъзно). Иначе можно все коряво написать (так как ты собираешься, как я понимаю, все по кусочкам собирать) и потом жалеть, чтобы придется потратить еще кучу денег на исправление багов (если дело пойдет).
                     
                    1. warlock777

                      warlock777 New Member

                      Joined:
                      24 Feb 2017
                      Messages:
                      5
                      Likes Received:
                      0
                      Reputations:
                      0
                      Всем привет! Помогите с JS-кодом. Мне необходимо сделать обработку нажатия на рекламный баннер. Нужно чтобы когда пользователь кликает по баннеру, то его перекидывало в открывшуюся вкладку сайта рекламы, а в той вкладке, где он был, открывалась другая страница моего сайта (в данном случае wot.php).
                      Я написал такой код:

                      Code:
                      <p id='toClick'>
                      <a href='https: //партнерка .ru?ref=123' onclick="this.target='_blank';" style='background:url("https: //партнерка .ru/img/user-banner-1.png");width:468px;height:60px;display:block;'></a>
                      </p>
                      
                      <script type="text/javascript">
                      $('#toClick').click(function(){
                      window.location="wot.php"; 
                      });
                      </script>
                      
                      Он работает как надо, но только для баннеров со всякими реферальными ссылками, а если я вставляю баннер формата типа
                      <script type="text/javascript" src="//ads. партнерка .net/317816/1/2/"></script> то он не пашет, а мне как раз надо чтоб с таким баннером работало. Как это можно осуществить?

                      P.S. Я в JavaScript пока еще полный нуб, поэтому если можно, то поподробнее пожалуйста:)
                       
                      1. bologer

                        bologer Member

                        Joined:
                        25 Nov 2016
                        Messages:
                        62
                        Likes Received:
                        18
                        Reputations:
                        3
                        Попробуй так:

                        HTML:
                        <p id='toClick'>
                            <a href='https: //партнерка .ru?ref=123' target="_blank" onclick="window.location='wot.php'" style='background:url("https: //партнерка .ru/img/user-banner-1.png");width:468px;height:60px;display:block;'></a>
                        </p>
                        
                         
                        1. warlock777

                          warlock777 New Member

                          Joined:
                          24 Feb 2017
                          Messages:
                          5
                          Likes Received:
                          0
                          Reputations:
                          0
                          Нее, братан, ты не понял. Ты модифицировал код баннера, который я указал сверху. С такими баннерами все и так работает. Проблем заключается с кликами по JS-баннерам, которые имеют примерно следующий вид:

                          Code:
                          <script type="text/javascript" src="//ads. партнерка .net/317816/1/2/"></script>
                          
                          Я вставляю скрипт такого баннера в свой код. Кликаю. Перекидывает на страницу рекламы, а моя функция с командой открытия другой страницы сайта не срабатывает
                           
                          1. bologer

                            bologer Member

                            Joined:
                            25 Nov 2016
                            Messages:
                            62
                            Likes Received:
                            18
                            Reputations:
                            3
                            Без понятия о чем ты. Нужно нормальное описание с примером(-ами). Возможно твой клик не работает из-за того, что у них клик стоит на родителе элемента, а у тебя на дочернем, но это не точно.

                            И скрипт который ты указал — это лишь его добавление на страницу. Самого скрипта я не вижу, поэтому и помочь не могу. Нужно полноценное описание проблемы, сейчас информации очень мало.
                             
                            1. Octavian

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

                              Joined:
                              8 Jul 2015
                              Messages:
                              506
                              Likes Received:
                              101
                              Reputations:
                              25
                              Такои код
                              Code:
                              $(function() {
                                  var $research = $('.research');
                              
                                  $research.find("tr").eq(0).show();
                                 
                                  $research.find(".accordion").click(function(){
                                      $research.find('.accordion').not(this).siblings().fadeOut(0);
                                      $(this).siblings().fadeToggle(500);
                                  }).eq(0).trigger('click');
                              });
                              Все работает но почемута при обновление страницы он первыи .acordion всегда скрывает медлено
                               
                              1. bologer

                                bologer Member

                                Joined:
                                25 Nov 2016
                                Messages:
                                62
                                Likes Received:
                                18
                                Reputations:
                                3
                                Попробуйте заменить 500 на 100, чтобы быстрее анимацию проходила.
                                 
                                1. Octavian

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

                                  Joined:
                                  8 Jul 2015
                                  Messages:
                                  506
                                  Likes Received:
                                  101
                                  Reputations:
                                  25
                                  Я етим играл ся тут фадеоут мешает первому блоку закрыватся
                                   
                                  1. bologer

                                    bologer Member

                                    Joined:
                                    25 Nov 2016
                                    Messages:
                                    62
                                    Likes Received:
                                    18
                                    Reputations:
                                    3
                                    Напиши код без всех твои доработок и "игрался". Чтобы исключить некоторые строки и тд
                                     
                                    1. kranx

                                      kranx Member

                                      Joined:
                                      19 Feb 2017
                                      Messages:
                                      17
                                      Likes Received:
                                      7
                                      Reputations:
                                      0
                                      В броузере многое что происходит когда интерпретируется твой код, какого хрена ты сначала показываешь все элементы, потом скрываешь их в коде?
                                      Code:
                                      .eq(0).trigger('click');
                                      убери это нахер, добавь в каждом элементе accodrion, кроме первого, <div> с style="display:none"
                                      тогда сразу будет виден лишь первый accordion, и ничего не будет закрываться медленно
                                       
                                      1. Octavian

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

                                        Joined:
                                        8 Jul 2015
                                        Messages:
                                        506
                                        Likes Received:
                                        101
                                        Reputations:
                                        25
                                        тогда сразу будет виден лишь первый accordion Мне какраз это и не надо
                                        Все скрыть нужно
                                         
                                        1. kranx

                                          kranx Member

                                          Joined:
                                          19 Feb 2017
                                          Messages:
                                          17
                                          Likes Received:
                                          7
                                          Reputations:
                                          0
                                          то есть в дизайне ты ноль. я понимаю, поговори с веб дизайнером, любым, он тебе все объяснит. ни разу я за все свои годы не видел вебсайт который при загрузке показывает все, и сразу же скрывает практически все. ты протестировал код, понял что так нельзя, теперь сделай так как надо.
                                           
                                          Loading...