如何将一个php文件中的Get变量发送到下一个sql insert

时间:2015-05-28 19:31:36

标签: javascript php ajax mysqli

我有一个网站,每个登录的用户都有一个会话。但是,如果登录的用户需要在某人的页面上发帖,我需要获取该用户的用户名,我使用此代码if (isset($_GET['u']))完成了该用户名。我可以通过处理同一页面上的所有内容轻松地将我的表单提交到数据库,但我想避免提交页面刷新,所以我决定转到ajax路径。

主PHP页面:

<?php include ( "./inc/incfiles/header.inc.php"); ?>
<?php
if (isset($_GET[ 'u'])) 
{ 
  $username = mysqli_real_escape_string($con, $_GET[ 'u']); 
  $_SESSION["username_send"] = $username; 
}
?>
<form method="POST" id="myform" name="myform" class="ajaxform" action="<?php echo $username;?>">
  <textarea type="text" id="name" name="name" class="form-control" rows="3" placeholder="share your ideas"></textarea>
  <div class="form-group">
    <button type="button" class="btn btn-primary btn-idea" id="submit" name="submit" value="Submit">Post</button>
  </div>
</form>
<?php include("inc/incfiles/footer.inc.php"); ?>

现在问题就是这个问题,进行ajax调用我遇到了$usernamephp处理页面的问题。出于某种原因,我在$user_posted_to = "$username"的数据库中收到一个空白条目。这使我认为创建的会话:$_SESSION["username_send"],不存储$_GET['u']参数。除了使用$username之外,还有更好的方法可以在处理页面中发送变量$_SESSION吗?

PHP流程页面send_post.php

<?php include("./inc/incfiles/connect.inc.php");
session_start();
    if (!isset($_SESSION["user_log"]))
    {
        $user = ""; 
    }
    else
    {
        $user = $_SESSION["user_log"];
        $username = $_SESSION["username_send"]; 
    }       
?>
<?php   
    $post = strip_tags(@$_POST['name']);
    if ($post !="")
    {
        $date_added = date("Y-m-d");
        $added_by = "$user";
        $user_posted_to = "$username";

        $sql_user_post ="INSERT INTO posts VALUES('','$post','$date_added','$added_by','$user_posted_to')";
        $query = mysqli_query($con, $sql_user_post) or die (mysqli_error());
    }
?>

JavaScript的:

$(function(){
  $("#submit").click(function(e) {
    e.preventDefault();
    var name = $("#name").val();
    $.ajax({
      type: "POST",
      url: "send_post.php",
      data: {name:name},
      success: function(){
        alert("It works");
      },
      error:function(e){
        alert("it failed");
      }
    });
  });   
});

0 个答案:

没有答案