Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中嵌入php会话变量_Javascript_Php_Mysql_Ajax - Fatal编程技术网

如何在javascript中嵌入php会话变量

如何在javascript中嵌入php会话变量,javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,我有一个动态表,它支持对数据库执行CRUD操作。 登录后,用户被定向到index.php,在这里显示一个表,其中的值存储在数据库表“ajaxtable”中。我使用外键连接了“ajaxtable”表和“members”表如何进一步修改代码,以便js文件可以从会话变量获取用户的电子邮件,而不是从动态表的输入字段发布。 my index.php: <?php session_start(); $fname=$_SESSION['mail']; ?> <html> <

我有一个动态表,它支持对数据库执行CRUD操作。 登录后,用户被定向到index.php,在这里显示一个表,其中的值存储在数据库表“ajaxtable”中。我使用外键连接了“ajaxtable”表和“members”表如何进一步修改代码,以便js文件可以从会话变量获取用户的电子邮件,而不是从动态表的输入字段发布。 my index.php:

<?php
session_start();
$fname=$_SESSION['mail'];
?>


<html>
  <title>Addressbook</title>
<head>
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js">    </script>
<link rel="stylesheet" type="text/css" href="crudstyle.css" />

</head>
<body bg color="">
<div id="mhead"><h2>Your Adressbook</h2></div>
 <div id="note"> <span> your addressbook is connected to our servers :) </span></div>
   <?php
   echo $fname; // it echoes the login email correctly here
   ?>
<table id='demoajax' cellspacing="0">
</table>
<script type="text/javascript" src="script.js"></script>

 </body>
</html>
//我希望从会话变量中获取此字段

   var lname = $("input[name='"+field_name[1]+"']");
   var domain =$("input[name='"+field_name[2]+"']");
   var email = $("input[name='"+field_name[3]+"']");
   if(validate(fname,lname,domain,email)){
   data = "fname="+fname.val()+"&lname="+lname.val()+"&domain="+domain.val()+"&email="+email.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;
  }   
   });
我的DbManipulate.php文件的一部分:

  function saveData($data,$con){
  $fname = $con->real_escape_string($data['fname']);
//上述字段也应在此操作期间从会话变量中获取

 $lname = $con->real_escape_string($data['lname']);
   $domain = $con->real_escape_string($data['domain']);
   $email = $con->real_escape_string($data['email']);
   $sql = "insert into ajaxtable(firstname,lastname,domain,email) values('$fname','$lname','$domain','$email')";
   if($con->query($sql)){
   showData($data,$con);
  }
else{
 echo "error";
 }

 } 
function showData($data,$con){
   $sql = "select * from ajaxtable JOIN member ON member.email=ajaxtable.firstname WHERE member.email=$fname";
   $data = $con->query($sql);
   $str='<tr class="head"><td>user email</td><td>contact name</td><td>contact number</td><td>contact Email</td><td></td></tr>';
   if($data->num_rows>0){
   while( $row = $data->fetch_array(MYSQLI_ASSOC)){
    $str.="<tr id='".$row['id']."'><td>".$row['firstname']."</td><td>".$row['lastname']."</td><td>".$row['domain']."</td><td>".$row['email']."</td><td>    
  <input type='button' class='ajaxedit' value='Edit'/> <input type='button' class='ajaxdelete' value='Delete'></td></tr>";
  } 
   }else{
    $str .= "<td colspan='5'>No Data Available</td>";
  }

echo $str;   
  }
$lname=$con->real_escape_字符串($data['lname']);
$domain=$con->real_escape_字符串($data['domain']);
$email=$con->real_escape_字符串($data['email']);
$sql=“插入ajaxtable(firstname、lastname、domain、email)值(“$fname”、“$lname”、“$domain”、“$email”)”;
如果($con->query($sql)){
showData($data$con);
}
否则{
回声“错误”;
}
} 
函数showData($data$con){
$sql=“选择*从成员上的ajaxtable加入成员。电子邮件=ajaxtable.firstname,其中成员。电子邮件=$fname”;
$data=$con->query($sql);
$str='user emailcontact name contact numbercontact Email';
如果($data->num\u rows>0){
而($row=$data->fetch_数组(MYSQLI_ASSOC)){
$str.=“”.$row['firstname']。“”.$row['lastname']。“”.$row['domain']。“”.$row['email']
";
} 
}否则{
$str.=“无可用数据”;
}
echo$str;
}

我建议您稍微重构一下代码。 若我是你们,我不会在函数showData($data,$con)中创建表; 相反,我将以jSON的形式返回结果,然后在javascript中,您将可以作为对象访问它。 所以

在javascript中:

$.getJSON("YOUR_URL", {
        dir: dir,
        tagmode: "any",
        format: "json"
    }).done(function (data)
    {
        var items = [];
        $.each(data.items, function (key, val)
        {
          console.log(val); // here you can see in console values of val and create table rows with those values
          var tmp_item = "" HERE CREATE YOUR TABLE ROWS val.id, val.first_name
            items.push(tmp_item);...
         }
一旦您在data.items对象中获得了所需的所有数据,就可以使用jQuery(append,appendTo…)轻松地将它们附加到页面上


希望有帮助

您可以将
script.js
重命名为
script.js.php
并加载它<代码>。然后,如果我理解您的问题,您可以使用
var fname='
,这是有效的扩展吗?所有3个文件中都需要进行一些更改,我希望您提出建议。用户甚至不能看到“fname”来进行任何更改。它应该自己发布存储在会话变量“mail”中的电子邮件。在我当前的代码中,它是一个用户可编辑的字段。不,不建议使用它,但这是最懒的方法。如果不想显示,请使用ajax。您可以在此处查看一些技巧:
function getData($data, $conn)
    {
         $sql = "select * from ajaxtable JOIN member ON member.email=ajaxtable.firstname WHERE member.email=$fname";
         $data = $con->query($sql);             
         if($data->num_rows>0){
              while( $row = $data->fetch_array(MYSQLI_ASSOC)){
                 $result[] = $row;
          }
          return json_encode($result);
      }
$.getJSON("YOUR_URL", {
        dir: dir,
        tagmode: "any",
        format: "json"
    }).done(function (data)
    {
        var items = [];
        $.each(data.items, function (key, val)
        {
          console.log(val); // here you can see in console values of val and create table rows with those values
          var tmp_item = "" HERE CREATE YOUR TABLE ROWS val.id, val.first_name
            items.push(tmp_item);...
         }