2015-09-11 4 views
1

Я показываю данные из mysql db in while имя цикла с кнопками редактирования и отмены. , когда я нажимаю кнопку редактирования, данные моего диапазона хранятся в тексте ввода, и если я нажимаю, чтобы отменить его сохранение моих данных ярлыков для ввода текста. Я могу только встроить редактирование своей первой записи строки не во 2-й строке или 3-й строка для других строк моя кнопка редактирования не толкает мои данные диапазона в текст ввода!JQuery/PHP Inline Edit

Его как встроенный редактор jquery/php для всех строк должен был иметь возможность редактировать отдельные записи !!

Любая помощь доступна. Спасибо!

Код

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script type="text/javascript"> 
    $('#orders').delegate('.editOrder','click',function(e){ 
     e.preventDefault(e); 
     var $li = $(this).closest('li'); $li.find('input.name').val($li.find('span.name').html()); 
     $li.addClass('edit'); 
    }); 
    $('#orders').delegate('.cancelEdit','click',function(e){ 
     e.preventDefault(e); 
     $(this).closest('li').removeClass('edit'); 
    }); 
    </script> 
    <style type="text/css"> 
     ul li .edit{ 
      display:none; 
     } 

     ul li.edit .edit{ 
      display:initial; 
     } 

     ul li.edit .noedit{ 
      display:none; 
     } 
    </style> 
    </head> 
    <body> 
     <?php 
      $sql = "select * from demo"; 
      $result = mysql_query($sql); 
      while($row = mysql_fetch_object($result)) 
      { 
     ?> 
     <ul id="orders"> 
      <li> 
       <span class="noedit name"> 
        <?php echo $row->name;?> 
       </span> 
       <input class="edit name"/> 
       <button class="editOrder">Edit</button> 
       <button class="cancelEdit">Cancel</button> 
      </li> 
     </ul> 
     <?php } ?> 
    </body> 
</html> 

ответ

3

Вы должны иметь уникальный идентификатор: S в вашем HTML, эта строка <ul id="orders"> повторяется для каждой записи у вас есть, что вам нужно сделать его уникальным. Возможно, вы должны добавить <li> для каждой записи вместо нового <ul>. Приведенные ниже коды переместились из Л из цикла

<ul id="orders"> 
<?php 
      $sql = "select * from demo"; 
      $result = mysql_query($sql); 
      while($row = mysql_fetch_object($result)) 
      { 
     ?> 

      <li> 
       <span class="noedit name"> 
        <?php echo $row->name;?> 
       </span> 
       <input class="edit name"/> 
       <button class="editOrder">Edit</button> 
       <button class="cancelEdit">Cancel</button> 
      </li> 

     <?php } ?> 
     </ul> 

В качестве альтернативы, вы можете изменить свой идентификатор к классу, тем не являются уникальными, и вашим JQuery Willl применяется ко всем элементам:

Первого:

<ul class="orders"> 

И тогда в вашем JQuery:

$('.orders').delegate(//etc 
Смежные вопросы