使用ajax时返回空会话

时间:2015-03-30 08:50:13

标签: php jquery ajax

我的代码有问题。我试图传递一个输入值,使用session在另一个页面中使用它,但它什么都不返回。我正在使用ajax来防止页面重新加载。表的内容是来自数据库的研讨会详细信息,每个按钮处理seminar_id。代码是

c.php

<?php
   session_start();
?>                 
<div class="container">
<table class="semin">               
  <tr>                               
    <th>TITLE</th>
    <th>DESCRIPTION</th>
    <th>DATE</th>
    <th>START TIME</th>
    <th>END TIME</th>
    <th>AVAILABILITY</th>
    <th>BOOKING</th>                                
</tr>                   
 <?php     
  if(isset($_POST["ID"]))
   {
     $_SESSION["id"]=$_POST["sid"];
    }                       
      $con=mysqli_connect("localhost","test","test","test");
      $a= "select * from SEMINAR1 where DATE >= CURDATE() and VACANCY > 0";
        $result = $con->query($a);
        if ($result->num_rows > 0)
        {
          // output data of each row
            while($row = $result->fetch_assoc())
            {
            ?>
                <tr>
                    <td><?php echo $row['TITLE']?></td>
                    <td><?php echo $row['DESCRIPTION']?></td>
                    <td><?php echo $row['DATE']?></td>
                    <td><?php echo $row['START_TIME']?></td>
                    <td><?php echo $row['END_TIME']?></td>
                    <td><?php echo $row['VACANCY']?></td>
                    <td>   
                     <form class="regist" method="post" >
  <input type="submit" value="register" name="ID" class="reg1"/>
  <input type="hidden" id="sid" name="do" value="<?php echo $row['ID'];?>"/>
  <input type="hidden" name="vac" value="<?php echo $row['VACANCY'];?>"/>
                     </form>
                    </td>                                                                            
            <?php
            }
        }                           
    ?> 
 </table>
        <script type="text/javascript">
        $('form.regist').on('submit', function(){
            $('#content').load('a.php');
            return false;
            });
            </script>
 </div>

和我用来打印会话的页面是 a.php只会

<?php
   session_start();
   $val=$_SESSION["id"];
   echo $val;
?>  

1 个答案:

答案 0 :(得分:0)

首先,我认为它应该是$_SESSION['id'] = $_POST['do'] $ _ POST [&#39; sid&#39;]不存在,你有id =&#34; sid&#34;和名字=&#34;做&#34;关于那个DOM元素。

另外,我可以看到你没有通过ajax提交表单(但是,如果您的代码的其他部分都这样做,我很抱歉,我只想确保帮助您)。

$('form.regist').on('submit', function(){
    $('#content').load('a.php');
    return false;
});

此代码实际上会停止提交的表单并加载a.php内容。

试试这段代码,看看它是否有效:

$('form.regist').on('submit', function() {
    // preventing form submission
    e.preventDefault();
    // getting form data
    var data = $(this).serialize();
    // sending form data via ajax post
    $.post('url', data, function() {
        // after request completed loading a.php content
        $('#content').load('a.php');
    });
});
希望我能帮到你。 :)