Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как определить id элемента [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Описание: Как определить id элемента
Panoptik
Отправлено: 07 Декабря, 2011 - 11:34:14
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




всмысле загружаете вместе со страницей обработчик с document.ready?
типа так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. <script type='text/javascript>
  4. $(function(){
  5.   $('иконка').click(function(){
  6.    var id=$(this).parents('tr').data('id')
  7.  })
  8. });
  9. </script>
  10.  
  11.     <td class='razdel_td'>
  12.     <a href=''><img  class='bottom' src='image/add.png'></a>
  13.     <a href='index.php?menu_edit=".$result_list_menu['id']."'><img  class='bottom' src='image/edit.png'></a>
  14.     <a href=''><img  class='bottom' src='image/up.png'></a>
  15.     <a href=''><img  class='bottom' src='image/down.png'></a>
  16.     <a href=''><img  class='bottom' src='image/delete.png'></a>
  17.     </td>
  18.  


Цитата:
загружать код с аяксом то есть страничку php+AJAX
сорри за придирчивость но аякс - это технология , а не данные, поэтому как бэ не понятно что именно загружается


-----
Just do it
 
 Top
tuareg
Отправлено: 07 Декабря, 2011 - 11:35:55
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Пишу для jQuery 1.7.1 если версия < delegate вместо on
HTML
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <table id='таблица1'>
  3. <tr>
  4. <td class='razdel_td' data-id=".$result_list_menu['id'].">
  5. <img class='bottom Add' src='image/add.png'>
  6. <img  class='bottom Edit' src='image/edit.png'>
  7. <img  class='bottom Up' src='image/up.png'>
  8. <img  class='bottom Down' src='image/down.png'>
  9. <img  class='bottom Delete' src='image/delete.png'>
  10. </td>
  11. </tr>
  12. ....
  13. </table>
  14.  

По HTML: вместо <img> использовать div с background http://htmlbook[dot]ru/css/background
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.  var id;
  4.  $('#таблица1').
  5.    on('click','img.Add',null,function(){
  6.      id=$(this).parents('td.razdel_td').data('id');
  7.    }).
  8.    on('click','img.Edit',null,function(){
  9.      id=$(this).parents('td.razdel_td').data('id');
  10.    })
  11. });
  12.  

Или

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(document).ready(function(){
  3.  $('#таблица1').
  4.    on('click','img.Add,img.Edit, img.Up,img.Down,img.Delete',null,function(){
  5.      var thisImg=$(this),
  6.            id,
  7.            deistvie;
  8.            id=thisImg.parents('td.razdel_td').data('id');
  9.            deistvie=thisImg.attr('class').split(' ')[1];
  10.         if(deistvie==='Add'){ ....}
  11.         else if(deistvie==='Edit'){ ....}
  12.        и т.д
  13.    });
  14. });
  15.  

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

для jQuery
Есть delegate/live<1.7, on>1.7
 
 Top
Panoptik
Отправлено: 07 Декабря, 2011 - 11:40:14
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




усё спс. забыл про "live" и одновременно узнал про "on". ща почитаем по подробнее


-----
Just do it
 
 Top
3d_killer
Отправлено: 07 Декабря, 2011 - 12:14:07
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




короч я так ниче и не понял как индефикатор записи один а действий несколько сделать...
 
My status
 Top
tuareg
Отправлено: 07 Декабря, 2011 - 12:21:56
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




3d_killer пишет:
короч я так ниче и не понял как индефикатор записи один а действий несколько сделать...


Улыбка Я тут ничего сделать не могу....

Я написал Вам код. Попробуйте его скопировать подключить библиотеку jQuery 1.7.1, запустите его и посмотрите разбиритесь
 
 Top
3d_killer
Отправлено: 07 Декабря, 2011 - 12:35:50
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




ой твой код не заметил, по коду все понятно спс.
 
My status
 Top
3d_killer
Отправлено: 08 Декабря, 2011 - 07:59:24
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Реально, код хорош, спасибо огромное
 
My status
 Top
3d_killer
Отправлено: 08 Декабря, 2011 - 13:30:26
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




я сделал как в коде который выше все работает отлично за одним исключением стрелочки вниз и вверх когда нажимаю кодом пхп меняются позиции в базе данных но после первой смены и вывода данных то есть меняется и визуально стрелки не меняют свой id хотя должны поэтому при нажатии кнопки второй раз происходит что то не понятное, у меня получается что есть страничка с выбором базы как на скрине, а сама таблица выводится когда выбрана база из php кода в нем же находится скрипт данный, может я чтото не правильно делаю? как правильно или код AJAX должен находиться на одной страничке, только как тогда быть если элементы не подгружены на них код действовать не будет....
Может кто нибудь ответить на такой вопрос?

(Отредактировано автором: 08 Декабря, 2011 - 13:33:44)

 
My status
 Top
tuareg
Отправлено: 08 Декабря, 2011 - 15:23:35
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




как то все сумбурно написано. Не очень понял
Но так на вскидку Ты нажал на стрелку вверх, запрос ушел, а на самой странице ни чего не поменялось???
Если так, то надо делать следующее, после нажатия на стрелку(отрабатывает скрипт сортировки) и после либо перегружать всю таблицу снова с сервера(самый простой вариант), либо пытаться с помощью jQuery перемещать строчки.

P.S В таких случаях сортировки я пользуюсь UI sortable

или опиши подробней: в стиле я нажал тут поменялось а здесь проблема.

(Отредактировано автором: 08 Декабря, 2011 - 15:43:25)

 
 Top
3d_killer
Отправлено: 08 Декабря, 2011 - 18:42:41
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.  var id;
  3.  $('#таблица1').
  4.    on('click','img.Add',null,function(){
  5.      id=$(this).parents('td.razdel_td').data('id');
  6.    }).
  7.    on('click','img.Edit',null,function(){
  8.      id=$(this).parents('td.razdel_td').data('id');
  9.    })
  10. });


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

PHP:
скопировать код в буфер обмена
  1. <?PHP //если выбрана таблица основное меню
  2. include("connect_db.php");
  3. $table=$_GET['table'];
  4.  
  5. // если меню редактируем основное      
  6. if ($table=='menu')
  7.         {
  8.     echo("<table border='0' cellspacing='0' cellpadding='0' style='padding-left:10px; font-size:12px;'>
  9.  <tr>
  10.    <td class='table_top'><center>Имя меню</center></td>
  11.    <td class='table_top'><center>Видимость</center></td>
  12.    <td class='table_top'><center>Управление</center></td>
  13.    <td class='table_top_end'><center>Картинка</center></td>
  14.  </tr>");
  15.                 $data_query=mysql_query("select * from menu order by nomber");
  16.                 while ($result=mysql_fetch_array($data_query))
  17.                         {      
  18.   echo("<tr>
  19.    <td class='table_bottom'><center>".$result['name']."</center></td>
  20.    <td class='table_bottom'><center>");
  21.         if ($result['visible']=='1')
  22.                 {
  23.                         echo("<input name='' type='checkbox' checked='checked'>");
  24.                 }
  25.         else
  26.                 {
  27.                         echo("<input name='' type='checkbox'>");
  28.                 }
  29.         echo("</center></td>
  30.    <td class='table_bottom'>
  31.    <table width='100%' border='0' cellspacing='0' cellpadding='0' id='control'>
  32.      <tr>
  33.        <td class='razdel' data-id='".$result['id']."'><center>
  34.                 <img class='Bottom Add off' src='image/add.png'>
  35.            <img class='Bottom Edit off' src='image/edit.png'>
  36.            <img class='Bottom Up off' src='image/up.png'>
  37.            <img class='Bottom Down off' src='image/down.png'>
  38.            <img class='Bottom Delete off' src='image/delete.png'></center>
  39.        </td>
  40.      </tr>
  41.    </table>
  42.    </td>
  43.    <td class='table_bottom_end'><center><img class='Bottom off' src='../".$result['logo']."'></center></td>
  44.  </tr>");
  45.                         }
  46.   echo("</table>");
  47.                        
  48.         }
  49. //конец редактирования меню основного
  50.         ?>

(Добавление)
3d_killer пишет:
CODE (javascript):
скопировать код в буфер обмена
  1.         $('#control').on('click','img.Add',null,function(){
  2.      id=$(this).parents('td.razdel').data('id');
  3.          alert("Добавить" + id);
  4.    }).
  5.    on('click','img.Edit',null,function(){
  6.      id=$(this).parents('td.razdel').data('id');
  7.          alert("Редактировать" + id);
  8.    });


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

PHP:
скопировать код в буфер обмена
  1. <?PHP //если выбрана таблица основное меню
  2. include("connect_db.php");
  3. $table=$_GET['table'];
  4.  
  5. // если меню редактируем основное      
  6. if ($table=='menu')
  7.         {
  8.     echo("<table border='0' cellspacing='0' cellpadding='0' style='padding-left:10px; font-size:12px;'>
  9.  <tr>
  10.    <td class='table_top'><center>Имя меню</center></td>
  11.    <td class='table_top'><center>Видимость</center></td>
  12.    <td class='table_top'><center>Управление</center></td>
  13.    <td class='table_top_end'><center>Картинка</center></td>
  14.  </tr>");
  15.                 $data_query=mysql_query("select * from menu order by nomber");
  16.                 while ($result=mysql_fetch_array($data_query))
  17.                         {      
  18.   echo("<tr>
  19.    <td class='table_bottom'><center>".$result['name']."</center></td>
  20.    <td class='table_bottom'><center>");
  21.         if ($result['visible']=='1')
  22.                 {
  23.                         echo("<input name='' type='checkbox' checked='checked'>");
  24.                 }
  25.         else
  26.                 {
  27.                         echo("<input name='' type='checkbox'>");
  28.                 }
  29.         echo("</center></td>
  30.    <td class='table_bottom'>
  31.    <table width='100%' border='0' cellspacing='0' cellpadding='0' id='control'>
  32.      <tr>
  33.        <td class='razdel' data-id='".$result['id']."'><center>
  34.                 <img class='Bottom Add off' src='image/add.png'>
  35.            <img class='Bottom Edit off' src='image/edit.png'>
  36.            <img class='Bottom Up off' src='image/up.png'>
  37.            <img class='Bottom Down off' src='image/down.png'>
  38.            <img class='Bottom Delete off' src='image/delete.png'></center>
  39.        </td>
  40.      </tr>
  41.    </table>
  42.    </td>
  43.    <td class='table_bottom_end'><center><img class='Bottom off' src='../".$result['logo']."'></center></td>
  44.  </tr>");
  45.                         }
  46.   echo("</table>");
  47.                        
  48.         }
  49. //конец редактирования меню основного
  50.         ?>


выделение кнопочек работает но их делал немного по другому:

CODE (javascript):
скопировать код в буфер обмена
  1. $('.Bottom').live('mousemove', function()
  2.                         {
  3.                                 $(this).addClass('on').removeClass('off');
  4.                         });
  5.                 $('.Bottom').live('mouseout', function()
  6.                         {
  7.                                 $(this).addClass('off').removeClass('on');
  8.                         });


последний код не очень конечно нравится, но он работоспособен, а вот нажатие кнопочек редактирования никак не отображается

CODE (javascript):
скопировать код в буфер обмена
  1. $('#control').live('click', 'img.Add' , null, function()
  2.                         {
  3.                                 alert("work"); 
  4.                         });
 
My status
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB