php - 使用ajax将 session 变量插入数据库

标签 php jquery mysql ajax

我有一个动态表,允许用户使用ajax从数据库中添加/编辑和删除记录。该表实际上最初来自here

它工作得很好,只是现在我希望能够将 session 变量(用户名)与其他记录一起添加到数据库中。对于我所有的搜索和阅读,我只是不知道如何去做......不幸的是我的 jquery 和 javascript 知识非常有限。我将非常感谢任何帮助。

这是 script.js 的“添加”部分,我已经向表中添加了一个用户名字段。

  var data='';
  var action = '';
  var savebutton = "<input type='button' class='ajaxsave' value='Save'>";
  var updatebutton = "<input type='button' class='ajaxupdate' value='Update'>";
  var cancel = "<input type='button' class='ajaxcancel' value='Cancel'>";
  var pre_tds; 
  var field_arr = new Array('text','text','text','text', 'text');
  var field_pre_text= new Array('Enter production','Enter channel','Enter role','Enter company', 'username');
  var field_name = new Array('production','channel','role','company', 'username'); 
 $(function(){
 $.ajax({
         url:"DbManipulate.php",
                  type:"POST",
                  data:"actionfunction=showData",
        cache: false,
        success: function(response){

          $('#demoajax').html(response);
          createInput();

        }

       });


 $('#demoajax').on('click','.ajaxsave',function(){



           var production =  $("input[name='"+field_name[0]+"']");
       var channel = $("input[name='"+field_name[1]+"']");
       var role =$("input[name='"+field_name[2]+"']");
       var company = $("input[name='"+field_name[3]+"']");
           var username =  SOMETHING LIKE THIS.....$_SESSION['username'];

       if(validate(production,channel,role,company)){
       data = "production="+production.val()+"&channel="+channel.val()+"&role="+role.val()+"&company="+company.val()+"&username="+username.val()+"&actionfunction=saveData";
       $.ajax({
         url:"DbManipulate.php",
                  type:"POST",
                  data:data,
        cache: false,
        success: function(response){
           if(response!='error'){
              $('#demoajax').html(response);
          createInput();
             }
        }

       });
      } 
      else{
       return;
      }   
       });**strong text**

这是 DbManipulate.php 的“保存并显示”部分,我在表中添加了一个用户名字段。

<?php
include('db.php');

if(isset($_REQUEST['actionfunction']) && $_REQUEST['actionfunction']!=''){
$actionfunction = $_REQUEST['actionfunction'];

   call_user_func($actionfunction,$_REQUEST,$con);
}
function saveData($data,$con){

  $username = $con->real_escape_string($data['username']);
  $production = $con->real_escape_string($data['production']);
  $channel = $con->real_escape_string($data['channel']);
  $role = $con->real_escape_string($data['role']);
  $company = $con->real_escape_string($data['company']);
  $sql = "insert into credits (production,channel,role,company, username) values('$production','$channel','$role','$company', '$username')";
  if($con->query($sql)){
    showData($data,$con);
  }
  else{
  echo "error";
  }

}
function showData($data,$con){
  $sql = "select * from credits order by id asc";
  $data = $con->query($sql);
  $str='<tr class="head"><td>production</td><td>channel</td><td>role</td><td>company</td><td></td><td>username</td><td>id</td></tr>';
  if($data->num_rows>0){
   while( $row = $data->fetch_array(MYSQLI_ASSOC)){
      $str.="<tr id='".$row['id']."'><td>".$row['production']."</td><td>".$row['channel']."</td><td>".$row['role']."</td><td>".$row['company']."</td><td><input type='button' class='ajaxedit' value='Edit'/> <input type='button' class='ajaxdelete' value='Delete'></td><td>".$row['username']."</td><td>".$row['id']."</td></tr>";
   }
   }else{
    $str .= "<td colspan='5'>No Data Available</td>";
   }

最佳答案

我还没有真正阅读您的所有详细信息。但是单独阅读您的问题,我认为您可以使用以下伪代码在服务器中简单地创建一个 session :

  1. 在 JavaScript 中,使用以下命令将 session 名称和 session 值发送到服务器 Ajax(GET 或 POST)
  2. 在 PHP 服务器中,获取 session 名称和 session 值
  3. 使用收集的值创建 session

PHP 脚本如下:

<?php
   // if the script is called via POST method.
   if($_POST) {
      $_SESSION[$POST['session_name'] = $_POST['session_value']];
   }
   // if the script is called via GET method
   if($_GET) {
      $_SESSION[$GET['session_name'] = $_GET['session_value']];
   }
?>

使用此脚本,您现在唯一需要做的就是向其发送创建 session 所需的数据。我想你已经有了。

关于php - 使用ajax将 session 变量插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27756210/

相关文章:

php - MySQL不显示数据

php - 如何在 Laravel 模型关系中传递参数

javascript - 使用 jQuery 的 PHP Ajax 响应为空

mysql - SELECT * 与 SELECT 列加载时间

mysql - MySql 插入触发器出现未定义错误

javascript - 当一个 div block 被触摸并且在同一条线上时,我如何将一个 div block 放在另一个垂直排列的下方?

php - 在计算其他表中的行时更新行

php - 我如何使用增量使用 php mysql 更新我的表列

javascript - 嵌套 AJAX 调用和 $.when.apply 列表 - 延迟 promise 无法正常工作

javascript - 是否可以检测网页是否显示在 Infragistics igDialog 中?