PHP变量通过弹出窗口传递

时间:2015-06-01 13:54:03

标签: php jquery variables popup

我有一个从数据库中提取的页面,显示了一些缩略图和一些关于它们的信息。我有一个"阅读更多"每个人的按钮。但您需要登录才能阅读有关该人的更多信息。

按"阅读更多"将打开一个弹出窗口,向用户提供"登录" (已有帐户)或"创建新帐户"。

用户登录后,我希望该页面重定向到特定人员的个人资料。我的问题是我无法找出存储该id变量的位置。如何将该变量传递到弹出窗口,然后传递到重定向链接。

// User Log In Form
    if (isset($_POST['submit']) && $_POST['submit'] == 'userSignIn') {
        if($_POST['usersEmail'] == '') {
            $msgBox = alertBox("Your User Email Address is required.", "<i class='fa fa-times-circle'></i>", "danger");
        } else if($_POST['password'] == '') {
            $msgBox = alertBox("Your Account Password is required.", "<i class='fa fa-times-circle'></i>", "danger");
        } else {
            // Check if the User account has been activated
            $usersEmail = (isset($_POST['usersEmail'])) ? $mysqli->real_escape_string($_POST['usersEmail']) : '';
            $check = $mysqli->query("SELECT isActive FROM users WHERE usersEmail = '".$usersEmail."'");
            $row = mysqli_fetch_assoc($check);

            // If the account is active - allow the login
            if ($row['isActive'] == '1') {
                $usersEmail = $mysqli->real_escape_string($_POST['usersEmail']);
                $password = encryptIt($_POST['password']);

                if($stmt = $mysqli -> prepare("
                                        SELECT
                                            userId,
                                            usersEmail,
                                            usersName
                                        FROM
                                            users
                                        WHERE
                                            usersEmail = ? AND password = ?
                ")) {
                    $stmt -> bind_param("ss",
                                        $usersEmail,
                                        $password
                    );
                    $stmt -> execute();
                    $stmt -> bind_result(
                                $userId,
                                $usersEmail,
                                $usersName

                    );
                    $stmt -> fetch();
                    $stmt -> close();

                    if (!empty($userId)) {
                        session_start();
                            $_SESSION["userId"]         = $userId;
                            $_SESSION["usersEmail"]     = $usersEmail;
                            $_SESSION["usersName"]      = $usersName;
                            $id = **NEED PERSON'S ID**
                            header("Location: http://scout.militarypropertyproject.com/index.php?page=scout_detail&id=".$id."");
                    } else {
                        $msgBox = alertBox("Login Failed. Please check your entries." , "<i class='fa fa-times-circle'></i>", "danger");
                    }
                }

                // Update Last Visited Date for User
                $lastVisited = date("Y-m-d H:i:s");
                $sqlStmt = $mysqli->prepare("
                                        UPDATE
                                            users
                                        SET
                                            lastVisited = ?
                                        WHERE
                                            userId = ?
                ");
                $sqlStmt->bind_param('ss',
                                   $lastVisited,
                                   $userId
                );
                $sqlStmt->execute();
                $sqlStmt->close();

            } else if ($row['isActive'] == '0') {
                // If the account is not active, show a message
                $msgBox = alertBox("Your Account is currently inactive, and you can not log in.", "<i class='fa fa-warning'></i>", "warning");
            } else {
                // No account found
                $msgBox = alertBox("No Account found for that Email Address &amp; Password.", "<i class='fa fa-times-circle'></i>", "danger");
            }
        }
    }

////////////////////用户排成行/////////////////// /////////

<div class="row">
            <div id="FilterContainer">
            <?php foreach ($categories as $category) { ?>
            <div class="col-md-4">
                 <div id = "user-square">  
                      <div class="avatar">
                         <center> <img src="<?php echo '../'.$avatarDir.$category['usersAvatar']; ?>" class="publicAvatar" /></center>
                      </div>    


                                            <div class = "user_bio_heading"><?php echo $category['name']; ?> 

                                            <?php   $starNumber = $category['avgstars']; 

                                                    for($x=1;$x<=$starNumber;$x++) {
                                                        echo '<i class="fa fa-star"></i>';
                                                    }
                                                    if (strpos($starNumber,'.')) {
                                                        echo '<i class="fa fa-star-half"></i>';
                                                        $x++;
                                                    }
                                                    while ($x<=5) {
                                                        echo '<i class="fa fa-star-o"></i>';
                                                        $x++;
                                                    }
                                                ?>  
                                            </div>  

                                            <div class = "user_bio"><?php echo substr($category['bio'], 0, 150) ?>... 

                                            <?php $_SESSION["scoutUserId"] = $category['id'];
                                            ?> 
                                            </div>
                                             <a data-toggle="modal" href="#signIn" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt"></i> Read More</a>
                                    </div>      
                                </div>
                        <?php  } 
                            ?>
                        </div>
                    </div>
                </div>
            </div>
                 </div>
             </div>
            </div>
        </div><!-- row -->

////////////////////////////// / POP UP WINDOW ///////////// /////////////

<div class="modal fade" id="signIn" tabindex="-1" role="dialog" aria-labelledby="newAccount" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header success">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></button>
                    <h4 class="modal-title">Sign In</h4>
                </div>
    <form action="" method="post">
        <p>All ready have a user account? Please Sign in.</p>
        <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
            <input type="email" class="form-control" required="" placeholder="User's Email Address" name="usersEmail" />
        </div>
        <br />
        <div class="input-group">
            <span class="input-group-addon"><i class="fa fa-lock icon-lock"></i></span>
            <input type="password" class="form-control" required="" placeholder="Account Password" name="password" />
        </div>
        <div class="row mt10">
            <div class="col-md-4">
                <p><small><a data-toggle="modal" href="#resetPassword">Reset Password?</a></small></p>
            </div>
        </div>
        <div class="modal-footer">
            <input type="hidden" name="captcha" value="" />
            <button type="input" name="submit" value="userSignIn" class="btn btn-success btn-icon"><i class="fa fa-check-square-o"></i> Sign In</button>
            <button type="button" class="btn btn-warning btn-icon" data-dismiss="modal"><i class="fa fa-times-circle"></i> Cancel</button>
        </div>
        <hr>
        <p>Don't have an account with us yet? No worries we'll get you set up real quick!</p>
        <button type="input" name="submit" value="newAccount" class="btn btn-success btn-icon"><i class="fa fa-check-square-o"></i> Create Account</button>
    </form>
        </div>
    </div>
</div>
            <div class="col-md-8">
                <span class="pull-right">
                    <button type="input" name="submit" value="userSignIn" class="btn btn-success btn-sm btn-icon"><i class="fa fa-sign-in"></i> Sign In</button>
                    <a data-toggle="modal" href="#newAccount" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt"></i> Create New Account</a>
                </span>
            </div>
        </div>
    </form>

///////////////////////////////////////////////

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

如何在Javascript中传递用户的ID,然后将其作为隐藏字段插入到表单中,以便在用户成功登录时,您知道他们想要去哪里。

首先将新数据属性添加到此代码中:

<a data-toggle="modal" href="#signIn" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt"></i> Read More</a>

所以它变成了(注意data-uid):

<a data-toggle="modal" href="#signIn" class="btn btn-warning btn-sm btn-icon"><i class="fa fa-unlock-alt" data-uid="<?=$category['id']?>"></i> Read More</a>

然后在弹出的代码中:

<input type="hidden" name="captcha" value="" />

您添加了新的隐藏输入标记:

<input type="hidden" name="captcha" value="" />
<input id="wanted_user" type="hidden" name="userid" value="" />

最后,在javascript模式弹出代码中,您将data-uid插入到隐藏字段中。通过听取谁触发事件,您可以获得正确的ID。

$('#signIn').on('show.bs.modal', function (e) {
  var target_user = $(e.relatedTarget).data('uid');
  $('#wanted_user').val(target_user);
});

请注意,此示例可能存在一些错误,您需要对其进行调试。

CodePen for you