我的代码有问题。我试图传递一个输入值,使用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;
?>
答案 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');
});
});
希望我能帮到你。 :)