使用JQuery将load()的结果追加到表中并对其进行格式化

Appending the results of a load() into a table with JQuery and formatting it

本文关键字:格式化 追加 load JQuery 结果 使用      更新时间:2023-09-26

我正试图将JQuery load()中的数据附加到表中。虽然我能够成功地将数据附加到表中,但附加的结果的格式与表的其余部分不一致。

表格的当前格式(附加后)

+---------------------------------------------------+
|                    Data                           |
-----------------------------------------------------
|    Data                |            Data          |
-----------------------------------------------------
|    Data                |            Data          |
-----------------------------------------------------
|Append data|Append data |
--------------------------
|Append data|Append data |
--------------------------
|Append data|Append data |
--------------------------
|Append data|Append data |
--------------------------

所需格式

+---------------------------------------------------+
|                    Data                           |
-----------------------------------------------------
|    Data                |            Data          |
-----------------------------------------------------
|    Data                |            Data          |
-----------------------------------------------------
|      Append Data       |        Append Data       |
 -----------------------------------------------------
|      Append Data       |        Append Data       |
-----------------------------------------------------
|      Append Data       |        Append Data       |
-----------------------------------------------------

代码提取:

    <table id="edititemtable" border='1'>
<tr>
    <td colspan='2'>Item Info</td>
</tr>
<tr>
    <td>Select Category: </td>
    <td>
        <select id='changeitemcat' name='changeitemcat'></select>
    </td>
</tr>
<tr>
    <td>Select SubCategory: </td>
    <td>
        <select id='changeitemsubcat' name='changeitemsubcat'></select>
    </td>
</tr>
<div id="details" name="details">
</div>
</table>

使用的JQuery摘录

$("#edititemtable").append($("#details").load('changeitem.php?cat='+cat+'&subcat='+subcat+'&item='+item));

.load()文件的提取

while($extractdetails=$getitem->fetch(PDO::FETCH_ASSOC))
{
//Data is saved into the associated variables

echo"<tr>";
    echo"<td>";
        echo"Item Name";
    echo"</td>";
    echo"<td>";
        echo"<input type='text' id='changeitemname' name='changeitemname' value=$itemname size='30' maxlength='50' />";
    echo"</td>";
echo"</tr>";    
echo"<tr>";
    echo"<td>";
        echo"Item Price";
    echo"</td>";
    echo"<td>";
        echo"<input type='text' id='changeitemprice' name='changeitemprice' value=$itemprice size='7' maxlength='7' />";
    echo"</td>";
echo"</tr>";
echo"<tr>";
    echo"<td>";
        echo"Item Info";
    echo"</td>";
    echo"<td>";
        echo"<textarea class='textarea' id='changeiteminfo' name='changeiteminfo' col='10' rows='10' maxlength='300' >$iteminfo</textarea>";
    echo"</td>";
echo"</tr>";

echo"<tr>";
    echo"<td>";
        echo'<form id="changeitem" name="changeitem" method="POST" action="">';
            echo"<input type='hidden' id='changeitemid' name='changeitemid' value='$itemid' />";
            echo"<input type='submit' id='changeitemsubmit' name='changeitemsubmit' value='Save Changes' />";
        echo"</form>";
    echo"</td>";
echo"</tr>";

}

问题

如何获得所需的格式?

为什么附加的数据被强制进入其中一个?

解决方案:

<table id="edititemtable" border='1'>
<tr>
    <td colspan='2'>Item Info</td>
</tr>
<tr>
    <td>Select Category: </td>
    <td>
        <select id='changeitemcat' name='changeitemcat'></select>
    </td>
</tr>
<tr>
    <td>Select SubCategory: </td>
    <td>
        <select id='changeitemsubcat' name='changeitemsubcat'></select>
    </td>
</tr>
<tr>
    <td colspan="2" id="details" name="details">
    </td>
</tr>
</table>

p.s我目前正在使用HTML5和PHP

<div>放在<table>中是无效的(如果它不在<tr><td>中),所以如果你试图这样做,你会看到"不正确"(就你而言)的结果。最简单的解决方案是将其从<div>更改为<tbody>元素,这对于位于<table>元素内部并包含表行是完全有效的:

<table id="edititemtable" border="1">
    <tr>
        <td colspan="2">Item Info</td>
    </tr>
    <tr>
        <td>Select Category:</td>
        <td>
            <select id="changeitemcat" name="changeitemcat"></select>
        </td>
    </tr>
    <tr>
        <td>Select SubCategory:</td>
        <td>
            <select id="changeitemsubcat" name="changeitemsubcat"></select>
        </td>
    </tr>
    <tbody id="details"></tbody>
</table>

也不需要调用.append(),因为该元素已经在表的末尾了。只需:

$('#details').load('changeitem.php?cat='+cat+'&subcat='+subcat+'&item='+item);

在html

<table id="edititemtable" border='1'>
<tr>
    <td colspan='2'>Item Info</td>
</tr>
<tr>
    <td>Select Category: </td>
    <td>
        <select id='changeitemcat' name='changeitemcat'></select>
    </td>
</tr>
<tr>
    <td>Select SubCategory: </td>
    <td>
        <select id='changeitemsubcat' name='changeitemsubcat'></select>
    </td>
</tr>
    <tr>
        <td colspan="2">
<table id="details" name="details" >
</table>
        </td> 
        </tr>
</table>

js中的

  $("#edititemtable").append($("#details").load('changeitem.php?cat='+cat+'&subcat='+subcat+'&item='+item));