将值从php页面传递到其他页面的模式

时间:2018-07-24 13:58:08

标签: php jquery mysql ajax modal-dialog

我正在尝试使用来自我的query.php页面的以下摘录编辑帖子:

echo '<button type="submit"  onclick="openModal(this)" id="btn-edit"
name="edit" value='.$postID.'></button>';


function openModal(id)
{
    var editpost = id.value;
        $.ajax({
            url:"query.php",
            method:"POST",
            data:{ editpost : editpost },
            success:function(data)
            { //
            },
            error: function () {//
            }
        });
    $('#edit').modal('show');
}

从所选帖子中获取数据的功能在同一php页面上。这是代码:

if(isset($_POST['editpost'])) 
{
    session_start();
    $editpostid = $_POST['editpost'];

    if($editpostid != "")
    {
        $sql = "SELECT * FROM post WHERE PostId = '" . $editpostid . "'";
    }

    if($sql != "")
    {
        $qry = mysqli_query($connection, $sql);
        if (mysqli_num_rows($qry) > 0) 
        {
            foreach($qry as $row)
            {
                $_SESSION['editpostdesc'] = $row['PostDesc'];
                $_SESSION['editpostfile'] = $row['PostFile'];
                $_SESSION['editpostid'] = $row['PostId'];
            }
        }
    }
}

但是模态在另一页(主页)上。我想获取帖子的数据并将其显示在模式中,因此我尝试使用$_SESSION。是的,我得到了数据并能够在模式上显示它,但问题是当我尝试编辑另一篇文章时,分配给会话的第一个值无法替换。还有其他方法可以不使用会话来传递值吗?我的想法真的耗尽了,我刚刚开始我的第一个Web项目。

1 个答案:

答案 0 :(得分:0)

如果您获得多行,则表示此方法有效...

if(isset($_POST['editpost'])) 
{
    session_start();
    $editpostid = $_POST['editpost'];

    if($editpostid != "")
    {
        $sql = "SELECT * FROM post WHERE PostId = '" . $editpostid . "'";
    }

    if($sql != "")
    {
        $qry = mysqli_query($connection, $sql);
        if (mysqli_num_rows($qry) > 0) 
        {
            foreach($qry as $row)
            {
                $res[] = array(
                                'editpostdesc' => $row['PostDesc'],
                                'editpostfile' => $row['PostFile'],
                                 'editpostid'  => $row['PostId']
                               ); 
            }


        }
    }
}