2015-03-30 4 views
0

У меня есть проблема с этим кодом. Я пытаюсь передать входное значение, чтобы использовать его на другой странице, используя сеанс, но ничего не возвращает. Я использую ajax для предотвращения перезагрузки страницы. содержимое таблицы - это данные семинаров из базы данных, и каждая кнопка обрабатывает семинар_ид. кодвозврат пустой сессии при использовании ajax

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; 
?> 
+0

извините, это sid not sem_id – jack

ответ

0

Прежде всего, я думаю, что это должно быть $_SESSION['id'] = $_POST['do']. $ _POST ['sid'] не существует, у вас есть id = "sid" и name = "do" на этом элементе 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'); 
    }); 
}); 

Надеется, что помог. :)

+0

У меня есть эта ошибка (Примечание: Неопределенный индекс: sid в C: \ wamp \ www \ test \ c.php в строке 18) – jack

+0

Извините, я отредактировал свой ответ, у вас нет $ _POST ['sid'], у вас есть $ _POST ['do'], исправьте атрибут имени на этом скрытом вводе «sid», и все будет хорошо. :) – BlindingLight

+0

Он загружает a.php, но он пуст! – jack

Смежные вопросы