Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15

Передача переменной в диалоговое окно

08.09.2012, 06:08. Показов 4256. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста, у меня такая ситуация:
есть таблица, в которую циклом при помощи php выводятся данные из базы данных mysql:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
... 
<tbody> 
    <? $result1 = mysql_query("SELECT * FROM spe******ts ORDER by id", $db); 
        $myrow1 = mysql_fetch_array($result1); 
           do  { ?> 
          <tr> 
            <td><?=$myrow1('id');?></td> 
                <td><?=$myrow1('spe******ts');?></td> 
                <td><?=$myrow1('name');?></td> 
                <td><a onclick="add_monday();" href="http://redxaus/magazine.php#/page/13" id="ankor"  class="atext"><?=$myrow1('monday');?></a></td> 
         </tr> 
 
         <? } 
         while ($myrow1 = mysql_fetch_array($result1)); 
          ?>
    </tbody> 
...
По событию onclick срабатывает функция add_monday();

JavaScript
1
2
3
4
5
6
<script> 
function add_monday() { 
$("#dialog_rasp").dialog({}); 
return false;  
}; 
</script>
которая вызывает диалоговое окно:

HTML5
1
2
3
<div id="dialog_rasp" title="Диалоговое окно" style="display:none;"> 
 <? $id=... //сюда надо передать $myrow1***91;'id'***93; из первой таблицы
</div>
Из первой таблицы нужно взять значение $myrow1['id'] и передать диалоговому окну.
все это находится в одном файле. насколько я знаю, сначала выполняется php код, а потом javascript. то есть сначала прогонится цикл в первой таблице, все данные из бд построчно выведутся, а потом уже будет срабатывать js. но как тогда передать $myrow1['id']? ведь при нажатии на разные строки он будет разный.
пробовал по-разному(аяксом, полем скрытым), но по-ходу руки кривые(
может непонятно описал, извините
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.09.2012, 06:08
Ответы с готовыми решениями:

Передача переменной в popup окно
Подобная тема https://www.cyberforum.ru/php-database/thread648440.html у меня все тоже самое только вместо диалогового окна PopUp окно. ...

Передача переменной в popup окно
В Web программировании новичок, подскажите, как реализовать следующее: Делаю интернет магазин, вывожу товары циклом (do-while + printf)....

Передача информации в диалоговое окно
Доброе утро всем! Возникает ошибка &quot;error expected primary-expression before '.' token&quot;. Делал по примеру но там было обратное, из...

14
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
08.09.2012, 08:50
вот тут похожая тема передача данных в dialog
1
6 / 6 / 0
Регистрация: 28.07.2012
Сообщений: 47
08.09.2012, 10:11
Dimple, не используйте do while, он нужен только в том случае, если необходимо сделать хотя бы 1 проход в теле цикла. Здесь не тот случай, представьте если условие
Цитата Сообщение от Dimple Посмотреть сообщение
$myrow1 = mysql_fetch_array($result1)
вернет 0-й результат, получите ошибку.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
... 
<tbody> 
    <? $result1 = mysql_query("SELECT * FROM spe******ts ORDER by id", $db); 
        while($myrow1 = mysql_fetch_array($result1))
        { ?> 
          <tr> 
            <td><?=$myrow1('id');?></td> 
                <td><?=$myrow1('spe******ts');?></td> 
                <td><?=$myrow1('name');?></td> 
                <td><a onclick="add_monday();" href="http://redxaus/magazine.php#/page/13" id="ankor"  class="atext"><?=$myrow1('monday');?></a></td> 
         </tr> 
 
     <? } ?>
    </tbody> 
...
0
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15
08.09.2012, 10:16  [ТС]
Ребят, спасибо за внимание!
У меня получилось забрать значение $myrow1['id'] в скрипт js через attr, но это значение мне нужно для того,чтобы из таблицы mysql достать данные в этом диалоговом окне (он выступает в роли id). то есть теперь надо передать из скрипта js эту переменную в php, чтобы сделать запрос в базу данных? может как-то по-другому это делается и я огород горожу?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
08.09.2012, 10:43
аяксом отправляете запрос на php-обработчик, а там извлекаете по полученным данным и возвращаете результат
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
08.09.2012, 18:55
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).ready(function() {   // Это все надо связать с ф-ей add_monday()
   
 
   $('.aclass').each(function() { // .aclass - класс всех тегов <a> в списке
   var id = parseInt($(this).attr('id'));
 
   if(confirm('')) // если нажали положительно, отправляем ajax-запрос 
   {
      $.get('ajax.php', {"id": id}, on_success);
      function on_success(data) {
         $('#result').html(data).show().delay(1500).fadeOut(1000);
      }
   }
 
}); // each
 
 
}); // jQuery
файл ajax.php
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
 
if (isset($_GET['id']))
{
   $id = abs((int)$_GET['id']);
 
  // какие-то действия
 
   // возвращаем результат (если надо)
  echo $result; //$result сначала надо создать конечно
}
1
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15
09.09.2012, 03:29  [ТС]
Love_and_Peace, Спасиб большое! ajax работает, в div с id=resultat получается выводить. Я не знаю как закинуть $_GET['id'] в диалоговое окно, то есть вызвать таблицу в диалоге с id=$_GET['id']. если так и присвоить в диалоговом окне,то результат пустой.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
09.09.2012, 03:31
HTML5
1
<a href="?id=число">Число</a>
1
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15
09.09.2012, 05:42  [ТС]
KOPOJI, не совсем понял(


у меня получилось так. вот таблица:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<tbody>
    <? 
    $result1 = mysql_query("SELECT * FROM spe******ts ORDER by id", $db);
    while ($myrow1 = mysql_fetch_array($result1))
       
    {
        ?>
       <tr>
            <td><?=$myrow1['id'];?>
            <form>
            <input type=hidden name=ge value="<?=$myrow1['id'];?>">
            </form>
            </td>
            <td><?=$myrow1['spe******ts'];?></td>
            <td><?=$myrow1['name'];?></td>
           
            <td> 
            <a onclick="add_monday();" href="http://redxaus/magazine.php#/page/13" class="atext"><?=$myrow1['monday'];?></a>
            <? 
?>
 
  </td>
        </tr>
    <?
    }
    ?>
    </tbody>
в ней я передаю в скрытом поле нужную переменную (строка 12)
по onclick срабатывает функция

JavaScript
1
2
3
4
5
6
7
8
9
10
11
<script>
function add_monday() {
    $.get('pro.php',{ 
        ge: $('form input[name="ge"]').val(), 
        showResult
    );
$("#dialog_rasp").dialog({});
return false;
 
};
</script>
функция, которая выводит результат
PHP
1
2
3
<script>
function showResult(d) { $('#resultat').html(d); }
</script>
функция add_monday() передает эту переменную в файл pro.php.вот этот файл:
PHP
1
2
3
4
5
6
<?php
header("Content-Type: text/html;charset=utf-8");
if (!empty($_GET["ge"])) { print '<b>id=='.$_GET["ge"].'</b> пришло '; } else {
    echo 'нет значения';  ?><br><?
}
?>
и если я в диалоговое окно вставляю <div id="resultat"></div>, то в него все выводится как надо. но мне надо не вывести, а получить это значение в диалоговое окно в виде переменной $id, чтобы по ней вывести еще одну таблицу.

еще почему-то проблема в том, что тыкаю на разные ячейки в первой таблице, по идее в диалоговом окне должны выводиться разные результаты, $myrow1['id'] ведь разные. а везде выводит 1(

Добавлено через 1 час 48 минут
а можно скрипт pro.php поместить на эту же страницу и сделать аякс запрос к ней же? чтобы $_GET["ge"] был доступен для диалога?
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
09.09.2012, 10:03
Цитата Сообщение от Dimple Посмотреть сообщение
но мне надо не вывести, а получить это значение в диалоговое окно в виде переменной $id, чтобы по ней вывести еще одну таблицу.
не совсем понимаю, из аякса в еще один аякс?
Запутался, задача что пишет, -
в списке есть ссылки, нажав на которые выводится выводится диалоговое окно и, если нажать "Да", то отправляем запрос по аяксу и должны получить ... что?

Цитата Сообщение от Dimple Посмотреть сообщение
Я не знаю как закинуть $_GET['id'] в диалоговое окно,
ты же говоришь, что получилось
Цитата Сообщение от Dimple Посмотреть сообщение
У меня получилось забрать значение $myrow1['id'] в скрипт js через attr,
Если не получилось поймать id, добавь в тег <a> id-шку
HTML5
1
<a id="<?=$myrow1('id');?>" onclick="add_monday();" href="http://redxaus/magazine.php#/page/13" class="atext"><?=$myrow1['monday'];?></a>
и теперь вот эта запись создаст в js переменную = id
JavaScript
1
var id = parseInt($(this).attr('id'));
и так передаем этот саммый id в пхп
PHP
1
$.get('ajax.php', {"id": id}, on_success);
1
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15
09.09.2012, 10:16  [ТС]
это я наверное что-то не догоняю,просто новичок еще.
да, забрать в js получилось, потом передать в обработчик ajax.php, а там можно сделать вывод в исходный файл,где таблица и тд.. ну то есть само значение попадает только в ajax.php, а мне надо на исходную страницу получить переменную с этим значением в диалоговое окошко (то есть не просто вывод) для того,чтобы дальше ее использовать (она будет id, по которому из другой таблицы я буду выводить данные)
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
JavaScript
1
$.get('ajax.php', {"id": id}, on_success);
- вот это ведь передаст в обработчик ajax.php, а мне надо на этой же странице оставить ее, только чтобы передать ее в диалоговое окошко

а вот сам вывод диалогового окна
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<div id="dialog_rasp" title="Диалоговое окно" style="display:none;">
  <table width="200" border="1">
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">Пн</th>
  </tr><br />
...
 
<? 
 
 // сюда надо передать id 
$id=$_GET["ge"];
$r=mysql_query("SELECT * FROM podrobno_rasp where id='$id'",$db); 
$i=$id;
$k=0;
while ($row=mysql_fetch_row($r)) {
 $ar[$i]=$row;
 
}
...
  
</table>
</div>
Надеюсь,правильно объяснил. ну короче мне надо это id для дальнейшего использования на исходной странице, где таблица сама, где запрос аякс . для того,чтобы вывести данные в диалоговое окно из другой таблицы. загвоздка в том, что я не знаю как его получить.
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
09.09.2012, 10:34
с какой целью id передается в ajax.php, что оттуда получаем, id? ну так id и так уже в диалоговом окне присутствует, тем более и в исходном файле, мы ведь из исходного файла и берем этот id.
еще вопрос - в диалоговом окне, что находится? для чего выводится диалоговое окно?
1
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15
09.09.2012, 11:00  [ТС]
а у меня чет не определяется этот id,выводит пустоту буду проверять еще раз.
я делаю запись онлайн, получается что на странице есть таблица, в которой построчно перечислены специалисты, а также время их работы, например:
фио понед
1 иванова 9.00-18.00
2 петрова 12.00-20.00
3 сидорова 15.00-17.00
при клике по ячейке с временем работы, например 9.00-18.00, вызывается диалоговое окно, в котором время работы расписано подробно:
Иванова
1 9.00-10.00
2 10.00-11.00
3 11.00-12.00
...
то есть при клике передается id специалиста диалоговому окну, а по нему я делаю вывод второй таблицы с подробным временем работы.


В общем вот вся страница, на которой таблица, диалоговое окно и аякс запрос

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<? require("bd.php");?>
  <table id="box-table-zapis">
   <thead>
        <tr>
            <th></td>
            <th>Специалист</td>
            <th>ФИО</td>
            <th>Пн</td>
            <th>Вт</td>        
        </tr>
    </thead>
    <tbody>
    <? 
    $result1 = mysql_query("SELECT * FROM spe******ts ORDER by id", $db);
    while ($myrow1 = mysql_fetch_array($result1))
       
    {
        ?>
       <tr>
            <td><?=$myrow1['id'];?>
            <form>
               <input type=hidden name=ge value="<?=$myrow1['id'];?>">
            </form>
            </td>
            <td><?=$myrow1['spe******ts'];?></td>
            <td><?=$myrow1['name'];?></td>
           
            <td> 
            <a onclick="add_monday();" href="http://redxaus/magazine.php#/page/13" class="atext"><?=$myrow1['monday'];?></a>
            </td>
            
            <td><?=$myrow1['tuesday'];?></td>
        </tr>
    <?
    }
    ?>
    </tbody>
</table>            
           
 
<div id="dialog_rasp" style="display:none;"> //диалоговое окно
  <table width="200" border="1">
  <tr>
    <th scope="col">&nbsp;</th>
    <th scope="col">Пн</th>
  </tr>
 
 // сюда надо передать id мастера
$id=$_GET["ge"];
$r=mysql_query("SELECT * FROM podrobno_rasp where id='$id'",$db); 
$i=$id;
$k=0;
while ($row=mysql_fetch_row($r)) {
 $ar[$i]=$row;
}
...
</table>
</div>           
 
 
<script>
function add_monday() {
            $.get('ajax.php',{ 
        ge: $('form input[name="ge"]').val()}, 
        showResult
    );
$("#dialog_rasp").dialog({});
return false; 
};
 
 
function showResult(d) { $('#resultat').html(d); }
</script>
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
09.09.2012, 12:22
понял. делаем так -
исходный файл пхп
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<? 
    $result1 = mysql_query("SELECT * FROM spe******ts ORDER by id", $db);
    while ($myrow1 = mysql_fetch_array($result1))
       
    {
        ?>
       <tr>
            <td><?=$myrow1['id'];?>
            <form>
               <input type=hidden name=ge value="<?=$myrow1['id'];?>">
            </form>
            </td>
            <td><?=$myrow1['spe******ts'];?></td>
            <td><?=$myrow1['name'];?></td>
           
            <td> 
            <a id="<?=$myrow1['id'];?>"  class="atext" style="cursor:pointer;"><?=$myrow1['monday'];?></a>
            </td>
            
            <td><?=$myrow1['tuesday'];?></td>
        </tr>
    <?
    }
    ?>
js-обработчик
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(document).ready(function() {
  
 
   $('.aclass').each(function() {
      var id = parseInt($(this).attr('id'));
 
      $.get("http://redxaus/magazine.php#/page/13", {"id": id}, on_success);
      function on_success(data) {
          $('#dialog_rasp').html(data);
      }
   });
 
});
ajax-обработчик
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php 
 
  // Получили мы данные из js
  if (isset($_GET['id']))
  {
      // Обрабатываем полученные данные
      $id = abs((int)$_GET['id']);
 
     // Делаем запрос ко второй табл., в которой время расписано подробней
     $q = "SELECT * FROM `table2` WHERE `id` = ". $id;
     $r = mysql_query($q);
 
     if (mysql_num_rows($r) > 0)
     {
         while($l = mysql_fetch_assoc($r))
         {
             echo "
                  <table>
                    <tr>
                      <td>$l[нужное поле]</td>
                    </tr>
                 </table>
             ";
         }
     }
     else die('С таким id сотрудников у нас нет!');
  }
так сработает

Добавлено через 2 минуты
тока такой момент, во второй табл. не так много информации, поэтому можно первый запрос в главном файле сделать двойным и вывести всю инфу из обех таблиц, а часть которая принадлежит второй просто сразу не показывать на экране (display:none. И нажам на ссылку будут показываться скрытые элементы, а не запрос к серверу аяксом
1
0 / 0 / 1
Регистрация: 08.09.2012
Сообщений: 15
09.09.2012, 12:55  [ТС]
Спасибо огромное!!!! Вы гений!!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.09.2012, 12:55
Помогаю со студенческими работами здесь

передача атрибутов в диалоговое окно
Доброго всем времени суток! Я новичек в jQuery, но как говорится затянуло. Хотела реализовать следующее: в таблице выбираем строчку -...

Передача CStringArray в дочернее диалоговое окно
В основном окне при открытии файла считываются необходимые строки в массив CDlgSpec spis; if(Na.DoModal()==1) { ... for(int...

Вывод в диалоговое окно текста и переменной
Нужно вывести в диалоговое окно Текст и значение переменной. Вот, на подобии такого: AlertDialog.Builder builder = new...

Передать значение переменной в диалоговое окно
Здравствуйте. Подскажите, пожалуйста, в чем может быть ошибка: Передаю значение переменной: protected void onCreate(Bundle...

QNetworkAccessManager - передача cookie в другое диалоговое окно
Есть две формы (Form1.ui и Form2.ui): в Form1.ui выполняется POST-запрос (авторизация). После ввода логина и пароля открывается вторая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru