0

データベースから入力されたテーブルがあります。私の目標は、ユーザーがリストから別の要素を選択したときに、テーブルのみを更新することです。

そのために、私はAjaxを使用しています。ajaxを使用しているHTMLを含むテンプレートがあります。

{literal}
<script type="text/javascript">

function refreshToolPrivileges($Object)
{
$.ajax({
    url: '/ajax/user_management/refresh_tool_privileges'+$Object,
    cache: false,
    dataType: 'xml',
    success: function(xml) {
        $(xml).find("Row").each(function(){

        });     
    }
});
}
</script>
{/literal}

Ajaxは、フォーマットされたxmlファイルを返すphpファイルを呼び出しています。

$format =
"\n\t<Row>
\t\t<group_id>{$fin_array['group_id']}</group_id>
\t\t<user_id>{$fin_array['user_id']}</user_id>
\t\t<Object>{$fin_array['Object']}</Object>
\t\t<Read>{$fin_array['Read']}</Read>
\t\t<Update>{$fin_array['Update']}</Update>
\t\t<Insert>{$fin_array['Insert']}</Insert>
\t\t<Delete>{$fin_array['Delete']}</Delete>
\t</Row>";

echo "<Result>" .$format. "\n</Result>";

現在、返されたXMLから日付を取得し、テーブルを自動的に更新する方法がわかりません。

表は次のとおりです。

<table width='700px' id="employeetable" class="tablesorter" style='table-layout:fixed;'>
<thead>
    <tr>
        <th>Group Id</th>
        <th>User Id</th>
        <th>Object</th>
        <th>Read</th>
        <th>Update</th>
        <th>Insert</th>
        <th>Delete</th>
    </tr>
</thead>
<tbody>
    {foreach from=$privileges item=privilegesItem name=foo}
    <tr>
        <td>{$privilegesItem['group_id']}</td>
        <td>{$privilegesItem['user_id']}</td>
        <td>{$privilegesItem['Object']}</td>
        <td>{$privilegesItem['Read']}</td>
        <td>{$privilegesItem['Update']}</td>
        <td>{$privilegesItem['Insert']}</td>
        <td>{$privilegesItem['Delete']}</td>
    </tr>
    {/foreach}
</tbody>
</table>
4

1 に答える 1

0

解決策は次のとおりです。

$.ajax({
    url: '/ajax/user_management/refresh_tool_privileges_table/'+$Object,
    cache: false,
    dataType: 'xml',
    success: function(xml) {
        $(xml).find("Row").each(function(){
            //alert('aaa');
            var group_id =$(this).find("group_id").text();
            var user_id=$(this).find("user_id").text();
            var Object=$(this).find("Object").text();
            var Read=$(this).find("Read").text();
            var Update=$(this).find("Update").text();
            var Insert=$(this).find("Insert").text();
            var Delete=$(this).find("Delete").text();

            $('tbody').remove();
            // jquery create a new tbody and insert aftre thead
            $('#employeetable').append(
                    '<tbody>'+
                    '<tr>'+
                        '<td>'+group_id+'</td>'+
                        '<td>'+user_id+'</td>'+
                        '<td>'+Object+'</td>'+
                        '<td>'+Read+'</td>'+
                        '<td>'+Update+'</td>'+
                        '<td>'+Insert+'</td>'+
                        '<td>'+Delete+'</td>'+
                    '</tr>'+
                    '</tbody>');



        });     
    }
});

ボディを削除してから、新しい変数を使用して新しいボディを作成しています。

于 2012-06-13T15:17:20.607 に答える