Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как передать переменную в модальное окно (https://javascript.ru/forum/jquery/39209-kak-peredat-peremennuyu-v-modalnoe-okno.html)

sinsir 20.06.2013 14:34

Как передать переменную в модальное окно
 
Здравствуйте, помогите немощу!
Вот скачал такой вот код модального окна
// Nikita Lebedev's blog, nazz.me/simple-jquery-popup
(function($) {
  $.fn.simplePopup = function() {

    var simplePopup = {

      // Events
      initialize: function(self) {

        var popup = $(".js__popup");
        var body = $(".js__p_body");
        var close = $(".js__p_close");
        var hash = "#/popup";

        var string = self[0].className;
        var name = string.replace("js__p_", "");

        // We redefine the variables if there is an additional popap
        if ( !(name === "start") ) {
          name = name.replace("_start", "_popup");
          popup = $(".js__" + name);
          name = name.replace("_", "-");
          hash = "#/" + name;
        };

        // Call when have click
        self.on("click", function() {
          simplePopup.show(popup, body, hash);
          return false;
        });

        $(window).on("load", function() {
          simplePopup.hash(popup, body, hash);
        });

        // Close
        body.on("click", function() {
          simplePopup.hide(popup, body);
        });

        close.on("click", function() {
          simplePopup.hide(popup, body);
          return false;
        });

        // Closure of the button "esc"
        $(window).keyup(function(e) {
          if (e.keyCode === 27) {
            simplePopup.hide(popup, body);
          }
        });

      },

      // Centering method
      centering: function(self) {
        var marginLeft = -self.width()/2;
        return self.css("margin-left", marginLeft);
      },

      // The overall function of the show
      show: function(popup, body, hash) {
        simplePopup.centering(popup);
        body.removeClass("js__fadeout");
        popup.removeClass("js__slide_top");
        window.location.hash = hash;
      },

      // The overall function of the hide
      hide: function(popup, body) {
        popup.addClass("js__slide_top");
        body.addClass("js__fadeout");
        window.location.hash = "#/";
      },

      // Watch hash in URL
      hash: function(popup, body, hash) {
        if (window.location.hash === hash) {
          simplePopup.show(popup, body, hash);
        }
      }

    };

    // In loop looking for what is called
    return this.each(function() {
      var self = $(this);
      simplePopup.initialize(self);
    });

  };
})(jQuery);


И вот есть такая к примеру страница.

<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="utf-8">
  <title>Демо. Простое всплывающее окно на transition и jquery | Блог Никиты Лебедева</title>

  <link rel="stylesheet" href="css/jquery.popup.css" type="text/css">

  <script type="text/javascript" src="js/jquery-1.7.min.js"></script>
  <script type="text/javascript" src="js/jquery.popup.js"></script>

  <script type="text/javascript">
    $(function() {
      $(".js__p_start, .js__p_another_start").simplePopup();
    });
  </script>

</head>
<body>

  <div class="p_anch">
    <a href="#?ass=1" class="js__p_start">Нажмите,</a> чтобы вызвать всплывающее окно
  </div>

  <div class="p_anch">
    <a href="#" class="js__p_another_start">Нажмите,</a> чтобы вызвать еще одно всплывающее окно
  </div>

  <div class="p_anch p_anch_bottom">
    <a href="#" class="js__p_start">Нажмите,</a> чтобы вызвать нижнее всплывающее окно
  </div>

  <div class="p_body js__p_body js__fadeout"></div>

  <div class="popup js__popup js__slide_top">
    <a href="#" class="p_close js__p_close" title="Закрыть"></a>
    <div class="p_content" align="center">Оформить кредит yf какихто условиях вы сможете без проблем .
    выберите подходящий вариант рассрочки ниже
    заполните соответствующие поля<?php echo $_GET['ass']; echo "werwer"; ?>
      <div style="border: solid 1px; width: 620px; height: 100%; margin-top: 20px;">
      	<table width='100%' height='100%' border=1><tr>
        <td><form action="http://localhost/inteline/index.php?p=2&id=56118&view=item">Условия 1 <br><input type="submit" /></form></td>
        <td><form>Условия 2 <br><input type="submit" /></form></td>
        <td><form>Условия 3 <br><input type="submit" /></form></td>
        </tr></table>
      </div>
    </div>
  </div>

  <div class="popup js__another_popup js__slide_top">
    <a href="#" class="p_close js__p_close" title="Закрыть"></a>
    <div class="p_content">Это уже другое всплывающее окно</div>
  </div>

  <a href="https://github.com/nazz-nazz/simple_jquery_popup" class="github" title="Github репозиторий"></a>

</body>
</html>


Мне нужно с этой страницы передать в модальное окно переменную (ид товара ) что бы потом их можно было обработать PHP скриптами.

Как это сделать?

Пробовал дописывать к ссылке (вызова окна) параметры ГЕТ но они не вызываются в модальном окне через PHP.

animhotep 20.06.2013 14:44

фуфуфу кредит)
переменную можно передать, присвоив её объекту window
на странице window.my_id=125
в модальном окне она будет видна

skrudjmakdak 20.06.2013 14:49

нафига в window пихать все подряд пихать?
достаточно за пределами функции объявить переменную.. делов то
1. var perem;
2. var perem = undefined;

animhotep 20.06.2013 14:54

за пределами какой функции? модальное окно кагбе в замыкании

sinsir 20.06.2013 14:56

Да я просто в яваскрипте дуб-дубом. То-есть совсем не понимаю что там и как. Не соблаговолит ли кто написать где там переменную объявлять и как потом ее вытащить?

animhotep 20.06.2013 15:02

так а что передать нужно? где конкретное число, которое нужно забрать в окне

sinsir 20.06.2013 15:10

<a href="#?ass=1" class="js__p_start">Нажмите,</a>
Да вот хоть отсюда "ass=1" .
Это я пытался через ГЕТ передать

sinsir 20.06.2013 15:11

В принцыпе на основной странице я могу где угодно что угодно написать, вопрос как это передать в окно?

animhotep 20.06.2013 15:16

на основной странице
<script type="text/javascript">
window.ass=1
</script>
в модальном окне будет доступно

skrudjmakdak 20.06.2013 15:26

я ченна в коде не нашел нужного)) может мы о разном..
но все же если модельное окно в замыкании.. ну так и переменную и замкнуть.. я чет проблемы не вижу))) я никогда в window левое не хранил

sinsir 20.06.2013 15:27

А каким образом доступно? Что-то не могу никак получить эту переменную :(

skrudjmakdak 20.06.2013 15:47

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

sinsir 20.06.2013 15:57

<div class="p_anch">
22
    <a href="#?ass=1" class="js__p_start">Нажмите,</a> чтобы вызвать всплывающее окно
23
  </div>

Вот вызов

В остальном я сам ничего не понимаю, код скачал в интернете.

ass=1 это я дописал , пытался через гет передать параметр

animhotep 20.06.2013 16:10

Цитата:

Сообщение от sinsir
А каким образом доступно? Что-то не могу никак получить эту переменную

alert(window.ass); из модального окна выведет айди

sinsir 20.06.2013 16:12

и как из алерта в PHP это передать?

animhotep 20.06.2013 16:17

echo (' <script type="text/javascript">
window.ass= $id_var
</script>' );

sinsir 20.06.2013 16:28

Ничего не выводится.
$id_var откуда взялось вообще?

skrudjmakdak 20.06.2013 16:30

что то я суть задания вообще потерял.. почему тогда в самом модельном окне сразу не прописать id, когда php генерит страницу..

animhotep 20.06.2013 16:35

Цитата:

Сообщение от sinsir
$id_var откуда взялось вообще?

это переменная пхп, которую нужно передать в модальное окно

sinsir 20.06.2013 16:50

Так давайте попорядку.

Вот есть страница index.php
В нем есть цыфра 10 (например это ид какого-то товара)

Мне нужно чтобы открылось окно в котором эту цыфру (10) я смогу посредством формы отправить на почту. Сама обработка формы и отправка будет через ПХП . Вопрос как же получить в модальном окне эту цыфру, что бы вставить ее в поле формы для отправки?

sinsir 20.06.2013 16:52

Может я не так выражаюсь. Может это не модальное окно а попап окно или как то так?

animhotep 20.06.2013 16:54

Цитата:

Сообщение от sinsir
Вот есть страница index.php
В нем есть цыфра 10 (например это ид какого-то товара)

Мне нужно чтобы открылось окно в котором эту цыфру (10) я смогу посредством формы отправить на почту. Сама обработка формы и отправка будет через ПХП . Вопрос как же получить в модальном окне эту цыфру, что бы вставить ее в поле формы для отправки?

в пхп присваиваете 10 переменной id_var
$id_var = 10;
и выводите на страницу уже как глобальную переменную джаваскрипта
echo (' <script type="text/javascript">
window.ass= $id_var
</script>' );

в модальном окне window.ass будет содержать 10

sinsir 20.06.2013 16:55

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

....однако я туплю

animhotep 20.06.2013 16:58

так и есть, модальное окно находится на тойже странице. только скрыто

sinsir 20.06.2013 16:59

Спасибо, вроде дошло.
Всем в карму :)


Часовой пояс GMT +3, время: 01:19.