如何通过AJAX将数据从AJAX PHP结果传递给单独的PHP函数?

时间:2017-05-17 10:41:29

标签: javascript php jquery ajax

当选择属于一个PHP文件的选项时,我的目标是将此选项的当前行ID传递给单独的PHP文件,以便我可以在那里使用它。

这是我正在尝试获取的文件:

echo '<div id="folderContentTableContainer">';
echo '<table class="table table-searchable-asc">';
if (count($contents) > 0) {
// Start of table
foreach ($contents as $content) {
    echo '<tr>';
    echo '<td>' . $content['title'] . '</td>';
    echo '<td>' . $content['id'] . '</td>';
    echo '<td><a id="cloneContent" class="fa fa-clone"></a></td>';
    echo '<td><a id="removeContent" class="fa fa-trash"></a></td>';
    echo '</tr>';
}
} else {
// return nothing

现在我想在单独的PHP文件中使用$ content ['id']来查询数据库。

我目前正在提取这样的文件内容:

$('#content').on('click', '#folderContainerUl li', function () {
    var id = event.target.id;
    $.ajax({
        url: '<?php echo ROOTDIR; ?>pages/ajax/getPasswordsFolderContent.php',
        type: 'POST',
        data: ({
            uuid: '<?php echo $_GET['uuid']; ?>',
            folder: id
        }),
        success: function (content) {
            $('#folders-content-container').html(content);

        }
    })
});

然后将文件内容放入getPasswordsFolders.php的数据中,其中包括:

echo '<div id="folderUlContainer">';
echo '<ul id="folderContainerUl">';
foreach ($folders as $folder) {
$children = $mfdb->select('password_folders', '*', array('AND' => array('parent_id' => $folder['id']), 'ORDER' => 'title ASC'));
if (count($children) > 0) {
    echo '<li id="' . $folder['id'] . '">' . $folder['title'] . '</li>';
    echo '<ul>';
    foreach ($children as $child) {
        echo '<li id="' . $folder['id'] . '">' . $child['title'] . '</li>';
    }
    echo '</ul>';
    echo '</li>';
} else {
    echo '<li id="' . $folder['id'] . '">' . $folder['title'] . '</li>';
}
}
echo '</ul>';
echo '</div>';

1 个答案:

答案 0 :(得分:1)

首先,如Rory McMcrossan所述,您正在复制ID,尝试使用类。

然后您可以发送如下的ajax请求:

$('.cloneContent').click(function(){
    var id = $(this).parent().prev().text();

    $.ajax({
        url:'your-url?id='+id,
        method:'get',
        ...
    });

    //OR

    $.ajax({
        url:'your-url',
        method:'post',
        data:{id:id},
        ...
    });
});

编辑:

为了简化您的工作,您可以将ID作为锚a的属性传递为:

echo '<td><a class="fa fa-clone cloneContent" data="'.$content['id'].'"></a></td>';

所以现在你可以通过以下方式获取id:

var id = $(this).attr('data');

代替:var id = $(this).parent().prev().text();