如何在使用 Jquery 时回显 PHP session 变量?

How to echo PHP session variable While using Jquery?

我是 PHP 的新人。我有一个文件上传代码。此代码上传文件并将其保存在 Mysql 数据库中。在此代码中,我使用两个字段,一个是日期,第二个是标题。当用户单击提交按钮时,日期和标题也存储在数据库中。我在我的代码中使用 Jquery 来选择当前日期并显示日历。我的 Jquery 功能是在日期字段中显示当前日期。当我更改日期字段中的日期时,它也会自动更改标题字段中的日期。

这是我的问题。

我在我的代码中使用 session 并在标题字段中回显 session 变量。正如我在上面所说的 Jquery 功能。我在更改日期时遇到问题。

当我在日期字段中更改日期时,它不显示 session 可变数据。

这是日期不变的照片

这是日期更改后的照片

我希望当我更改日期时它也显示所有其他变量数据。

这是我的Session代码

<?php

 // starts session

 session_start();

 // setting variable values during session

$_SESSION['UserName']='Saqib';
$_SESSION['TeamName']='MIT';
?>

这是我的文件代码

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" type="text/css" href="style.css">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
    <script>
$(document).ready(function() {
    $("#mydate").datepicker({
    dateFormat: "dd-M-y",
   onSelect: function(dateText, inst) {
            $("#dt_title input[type='text']").val($("#dt_title input[type='text']").attr('data-title')+dateText);
   }
    }).datepicker("setDate", new Date());
});   
</script>
</head>
<body>

 <form action="up_mb.php" method="POST" enctype="multipart/form-data">

   <table width="547" class="tblbdr" >
    <tr>
        <td height="23"  colspan="6" class="head"><p>  Morning Briefing </p></td>
</tr>
 <tr> <td height="10"></td></tr>
<tr><td class="celltext"><b>Date:</b> </td> <td><input name="mydate" type="text" id="mydate" style="width:200px"> </td></tr>
<tr>

<tr><td class="celltext"><b>Title: </b><br> </td> 

<td class="celltext" style="width:200px" >  <span id="dt_title"> <input name="title" type="text" value=" MB | 
<?php session_start(); echo $_SESSION['UserName'];?> | <?php echo $_SESSION['TeamName'];?> | <?php echo date("d-M-y");?>" 
data-title="MB | " style="width:200px"/> </span> </td> </tr>

</tr>
<td class="celltext"><b>Upload File:</b></td>
    <td colspan="4" bordercolorlight="#006666">  
    <input type="file" name="myfile" id="myfile" width="100%" size=80/>

   <!-- <input type="file" name="files[]"  multiple style="width:300px"/> -->
   </td></tr>
    <td><input type="submit" value="Save"/> </td> <td> </td>
    <td width="151">

   </td>
    <tr>
    <td height="12">
    </td>
    <td width="290">

   </td> </tr>
   </table>
</form>
</body>
</html>

看起来您想要做的是更新您的 onSelect 以也包含您的 PHP 会话数据的内容。即:

   onSelect: function(dateText, inst) {
            $("#dt_title input[type='text']").val($("#dt_title input[type='text']) + " | <?php echo $_SESSION['UserName'].' | '.$_SESSION['TeamName']; ?>").attr('data-title')+dateText);
   }

不确定我是否得到了正确的值(或语法),但如果我没看错的话,你可能可以完成剩下的工作。通过评论让我知道!

将您的脚本更改为:

$(document).ready(function() {
    $("#mydate").datepicker({
        dateFormat: "dd-M-y",
        onSelect: function(dateText, inst) {
            changeDate =$("#dt_title input[type='text']").attr('data-title');
            sessions = "<?php echo $_SESSION['UserName']; ?> | <?php echo $_SESSION['TeamName']; ?> | ";
            $("#dt_title input[type='text']").val(changeDate+sessions+dateText);
       }
    }).datepicker("setDate", new Date());
});

此外,您无需在 <span id="dt_title"> 上再次打开 session_start()

只需将您的会话数据附加到文本字段中,如下所示

$(document).ready(function() {
    $("#mydate").datepicker({
    dateFormat: "dd-M-y",
    onSelect: function(dateText, inst) {
        $("#dt_title input[type='text']").val($("#dt_title input[type='text']").attr('data-title')+"| <?php echo $_SESSION['UserName'] | $_SESSION['TeamName']; ?> | "+dateText);
}
}).datepicker("setDate", new Date());
});

您需要更改 'input' 字段中的 'data-title' 属性

data-title="MB | <?php echo $_SESSION['UserName'];?> | <?php echo $_SESSION['TeamName'];?> | "

而不是

data-title="MB | "

将 session_start() 放在文档类型 html 之前的第一行。