使用ajax将行添加到表的末尾

时间:2011-06-10 19:03:38

标签: php jquery html-table row

我有一个包含三列[1]类型,[2]名称和& [3]删除。该表的ID是“physicianTable”。

这是表的格式。

<table width="100%" border="0" cellspacing="0" cellpadding="3" style="font-size:12px;" id="physicianTable">
      <tr>
        <td align="right" valign="top"><strong>Type</strong></td>
        <td align="left" valign="top"><strong>Name</strong></td>
        <td width="55" align="center" valign="top"><strong>Remove</strong></td>
      </tr>
      <?php echo $doctorRow;?>
    </table>

另外$ doctorRow看起来像这样:

$doctorRow .= '<tr class="residentDoctorID_'.$docRecid.' doctorRow '.$docRecid.'">
               <td align="right"><strong>'.$type.':</strong></td>
               <td align="left">'.$name.'</td>
               <td align="center">
                 <a href="'.$docRecid.'" class="remove">
                   <img src="../../../images/1307661708_delete.png" width="16" height="16">
                 </a>
               </td>

               </tr>';

当我加载页面时,表格会显示类型和名称,并带有“删除”类的img以删除该行。我删除的行正常运行。

我无法工作的部分是向表中添加一个新行。要加载的数据采用tr的形式。我调用的页面有一个php echo来返回一个表格行。

echo '<tr>
       <td align="right"><strong>'.$recordType.'</strong></td>
       <td class="name">'.$doctorName.'</td>
       <td align="center">
       <a href="'.$recordID.'" class="remove">
         <img src="../../../images/1307661708_delete.png" width="16" height="16">
       </a>
       </td>
      </tr>';

这是我称之为的jquery ajax:

$('.addPysician').live('click', function(){
        var recordID = $('.doctorID option:selected').val();
        var reskey = $('.reskey').val();
        var href = 'doctor/editResidentDoctor.php'
        $('.fade').remove();
        $.ajax({
            url: href,
            type: 'get',
            dataType: 'html',
            data: 'action=add&doctorID='+recordID+'&reskey='+reskey,
            success: function(resp){
                $('#physicianTable > tbody').append(($(resp).html()));
                $('.doctorID').val('');
                alert(resp);
            }
        });
    });

我打算这样做是[1]取下拉框的值.doctorID(这个有用),[2]得到隐藏字段的值.reskey(这个有效),[3]得到目标url作为变量'href'(这个工作),[4]调用get ajax请求并返回信息(表行)并将其插入#physicianTable的末尾(这是不工作的部分),并且[5]将dropdown .doctorID设置为空白(这可行)。

当我按下按钮.addPhysician时,我将其作为ajax请求中success条款的resp:

<tr class="residentDoctorID_2308 doctorRow 2308">
   <td align="right"><strong>MMS, PA-C</strong></td>
   <td class="name">Dr. lastName, firstName</td>
   <td align="center">
     <a href="2308" class="remove">
       <img src="../../../images/1307661708_delete.png" width="16" height="16">
     </a>
  </td>
</tr>

但是,只有这个插入到我的表中:

<td align="right"><strong>MMS, PA-C</strong></td>
<td class="name">Dr. lastName, firstName</td>
<td align="center">
  <a href="2308" class="remove">
    <img src="../../../images/1307661708_delete.png" width="16" height="16">
  </a>
</td>

正如你所看到的,我错过了我需要的类的tr。为了解决这个问题,我将表标签放在php echo中的tr周围。这在Firefox中不起作用,因为它确实返回了我想要的tr,但它将它包装在tbody标签中,弄乱了表格格式。

任何人都可以告诉我一种方法将完整的php插入到我的表的末尾吗?我试图在我的示例中做到彻底,但如果您需要更多信息来帮助回答我的问题,请告诉我。

2 个答案:

答案 0 :(得分:3)

.html()将html包含在对象中,在您的情况下,它将是<td>

只需取出.html(),就应该是金色的

编辑:哦,你可以打开它。

$('#physicianTable > tbody').append(resp);

答案 1 :(得分:0)

我看到你试图将它附加到一个tbody,但我没有看到你的标记中有一个tbody。您使用的是但没有显示标记的那部分吗?如果没有,那就把它附在你的桌子上:

$('#physicianTable').append(...)