使用ajax将会话变量POST到关系数据库

时间:2014-10-31 06:23:19

标签: javascript php jquery session

我正在尝试向关系数据库添加一些数据,并希望session_user_id成为该数据库的外键。当用户单击按钮时,我想使用session_user_id和我已发布到页面的其他一些信息创建数据库条目。我的ajax发布到它运行的php网页页面(意味着我的所有脚本都在同一页面上)

我目前正在获得Uncaught ReferenceError: $sess_user_id1 is not defined。 jquery正在开火。虽然我希望修复未定义的变量,总的来说这似乎不是一个非常直接的方法,并且当我需要的所有变量已经在我的PHP语句中时,它添加了一堆令人困惑的变量。有没有办法在不通过ajax并且必须再次定义变量的情况下触发PHP条目?

这是我的php,它位于与我的JS和HTML在同一页面的标题中:

<?php
    $markerid = $_POST["id"];
    $name = $_POST["name"];
    $type = $_POST["type"];
    $point = $_POST["point"];
    $lat2 = $_POST["lat"];
    $lng2 = $_POST["lng"];
    $locationdescription = $_POST["locationdescription"];
    $locationsdirections = $_POST["locationdirections"];

    session_start();
    if (!isset($_SESSION['sess_user_id']) || empty($_SESSION['sess_user_id'])) {
        // redirect to your login page
        exit();
    }

    $sess_user_id1 = $_SESSION['sess_user_id'];

    if ((isset($_POST['usid'])) && (isset($_POST['usid']))) {
        $user_id_follow = strip_tags($_POST['usid']);

        echo $user_id_follow;

        $query = "INSERT INTO markerfollowing ( userID, markerID, type )
            VALUES ('$user_id_follow', '$markerid', '$type');";

        $result = mysql_query($query);

        if (!$result) {
            die('Invalid query: ' . mysql_error());
        }

        mysql_close();
    }
?>

这是HTML按钮:

<div class="btn pull-right">
    <button class="btn btn-large btn-followmarker" type="submit"id="followmarker">Add me to the list</button>   
</div>

这是jquery / ajax帖子:

<script/javascript>
    $(document).ready(function () {
        $("#followmarker").click(function(){
            $.ajax({
                type: "POST",
                url: "", // 
                data: { usid: <?php echo '$sess_user_id1'; ?>},
                success: function(msg){
                    alert("success");
                    $("#thanks").html(msg);
                },
                error: function(){
                    alert("failure");
                }
            });
        });
    });
</script

衷心感谢所有人的帮助。我之前没有使用过关系数据库。

1 个答案:

答案 0 :(得分:0)

<?php echo '$sess_user_id1'; ?> 是错的。如果你不想得到 $ sess_user_id1的data: { usid: 123} 123 ,您应该写

data: { usid: <?php echo "$sess_user_id1"; ?>}

在您的brawser中查看您的html源代码。我认为有data: { usid: $sess_user_id1},javascript不明白什么是 $ sess_user_id1

这是我现在唯一能看到的问题,但是我不能完全了解你当前的任务。