2016-07-08 3 views
0

Я ищу, чтобы изменить текст кнопок на текст таблицы внутри ячейки таблицы.Я хочу изменить текст кнопки на то, что есть таблица

Таблица заполнена базой данных.

Код предназначен для считывания значения из поля «статус» в таблице и изменения «активной» кнопки на тот же текст.

Но: изменение всех кнопок на один и тот же текст вместо одного.

РНР

echo "<tr class='id'>"; 
     echo "<td>$row->consult_id</td>"; 
     echo "<td>$row->consultant_name</td>"; 
     echo "<td>$row->job_title</td>"; 
     echo "<td>$row->client</td>"; 
     echo "<td>$row->pay</td>"; 
     echo "<td>$row->bill</td>"; 
     echo "<td>$row->cost</td>"; 
     echo "<td>$row->margin</td>"; 
     echo "<td>$row->startdate</td>"; 
     echo "<td>$row->enddate</td>"; 
     echo "<td>$row->recruited</td>"; 
     echo "<td>$row->account_manager</td>"; 
     echo "<td class='status'>$row->active</td>"; 
     echo "<td><button type='button' class='btn btn-success btn-block active'>Active</button></td>"; 
     echo "</tr>"; 

HTML-

<table class="table table-bordered"> 
      <thead> 
      <tr> 
       <td>Consultant Id</td> 
       <td>Consultant Name</td> 
       <td>Job Title</td> 
       <td>Client</td> 
       <td>Pay</td> 
       <td>Bill</td> 
       <td>Cost</td> 
       <td>Margin %</td> 
       <td>Start Date</td> 
       <td>End Date</td> 
       <td>Recruited By</td> 
       <td>Account Manager</td> 
       <td>Activate State</td> 
       <td>Change Activate State</td> 
      </tr> 
      </thead> 
      <tbody> 
       <?php echo readDatabase(); ?> 
      </tbody> 
     </table> 

Jquery

$('.status').each(function() { 
    if ($(this).text() == "Inactive") { 
     $('.active').text('Inactive'); 
     $('.active').removeClass('btn-success'); 
     $('.active').addClass('btn-danger'); 
    } 
}); 

ответ

2

вы можете попробовать этот код

$('.status').each(function() { 
     var active_element = $(this).next('td').find('button.active'); 
     if ($(this).text() == "Inactive") { // I don't know you need $(this).text() or the button text active_element.text() 
      active_element.text('Inactive'); 
      active_element.removeClass('btn-success'); 
      active_element.addClass('btn-danger'); 
     } 
    }); 
0

Вместо цели всех элементов с $('.active') вам нужно будет обратиться к соответствующему button, используя this.

Кроме того, вы можете уменьшить свой код немного, попробуйте следующее:

$('.status:contains('Inactive')').each(function() { 
    $(this).next().find('button').html('Inactive').toggleClass('btn-success btn-danger') 
}); 
Смежные вопросы