Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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
Php onclick Submit按钮和$#u SESSION[';variable';]=1可以组合使用吗?_Php_Javascript_Session_Onclick - Fatal编程技术网

Php onclick Submit按钮和$#u SESSION[';variable';]=1可以组合使用吗?

Php onclick Submit按钮和$#u SESSION[';variable';]=1可以组合使用吗?,php,javascript,session,onclick,Php,Javascript,Session,Onclick,我一直在阅读有关这方面的文章,但我仍然没有得到正确的答案。我采纳了他们的建议,但没有达到我想要的。我想实现这一点:当我单击Submit按钮时,我希望将$_SESSION['roomno']=400和$_SESSION['chairnum']=5传递到PHP中的另一个页面 部分monica.php代码: <div id="popupContact"> <a id="popupContactClose">x</a> <cent

我一直在阅读有关这方面的文章,但我仍然没有得到正确的答案。我采纳了他们的建议,但没有达到我想要的。我想实现这一点:当我单击Submit按钮时,我希望将$_SESSION['roomno']=400和$_SESSION['chairnum']=5传递到PHP中的另一个页面

部分monica.php代码:

<div id="popupContact">
        <a id="popupContactClose">x</a>
        <center><form method = "POST" action="gervent.php">
        <h1>Information </h1>
        Fullname : <input type="text" name="student_name" /><br /><br />
        Student ID No. : <input type="text" name="stud_id" />
        <br /><br />
        <input type="submit"  value="Submit" onclick=???/>
        </form></center>
        </div>
        <div id="backgroundPopup"></div>

x
问询处
全名:

学生证号码:

gervent.php

<?php
session_start();

$name = $_POST['student_name'];
$stud_id = $_POST['stud_id'];
/*Should have this
    $room_id = $_SESSION['roomno'];
    $chair_num = $_SESSION['chairnum'];
*/

mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db('seat_reservation') or die (mysql_error());

$query = mysql_query("INSERT INTO reservation WHERE (room_id, chair_number, chair_status, student_name, stud_id) VALUES ($room_id, $chair_num, 1, $name, $stud_id)");

if($insert)
    die ("Seat reserved! <br />Redirecting...<meta http-equiv='refresh' content=2;monica.php>");

else 
        die ("Try Again! <br />Redirecting...<meta http-equiv='refresh' content=2;monica.php>");
   ?>

$\u会话
变量本身不是“传递”的。它们在脚本之间维护,因此不需要传递。您只需在需要时设置/更改它们,并在服务器端的任意位置调用它们(前提是您在页面开始时调用了
session\u start()
,但我相信您已经知道这一点)(我这么说是因为我猜这里的会话变量似乎是根据用户打开的房间页面设置的,可能有多个房间页面需要预订座位,每个页面设置了不同的会话变量)或者,如果会话是可选的,并且表单所在的页面中没有启动会话,则可以向表单中添加隐藏的输入字段,这些字段包含房间和椅子号的值(您应该找到一种方法在表单中预先定义它们,例如$\u GET['value']等),并且可以通过单击提交将它们发送到目标页面

<div id="popupContact">
<a id="popupContactClose">x</a>
<center><form method = "POST" action="gervent.php">
<h1>Information </h1>
Fullname : <input type="text" name="student_name" /><br /><br />
Student ID No. : <input type="text" name="stud_id" />
<br /><br />
<!-- the php variables of values has to be set before, any way you'd like -->
<input type="hidden" name="room_id" value="<?=$room_id?>" />
<input type="hidden" name="chair_num" value="<?=$chair_num?>" />
<input type="submit" value="Submit" />
</form></center>
</div>
<div id="backgroundPopup"></div>

x
问询处
全名:

学生证号码:


如果会话变量中已经存在这些值,则取消对这些行的注释应该可以使其正常工作。如果没有,则说明您提出了完全错误的问题。为什么要在单击时设置会话值?如果可以在第一页加载
onclick()之前设置会话值
完全没有必要。您已经将表单发布到了gervent.php。很抱歉,不要让我看起来很明显,因为它不适合我。我在这里发布是为了寻求帮助,而不是被责骂。无论如何,每次提交时,我都想更改会话的值。monica.php是一个多个弹出窗口,询问信息和val$u会话['chairnum']和$u会话['roomno']的用户端根据他/她单击的链接,应该有值。实际上,使用会话不起作用。因此,我正在寻找另一种方法使gervent.php页面获得值。这不是我的否决票,但你的答案是误导性的-会话变量是服务器端的,javascript不能触及它。@b当然可以。你可以将php变量回送到JavaScript。但这并不重要,因为OP试图实现的目标与JavaScript没有任何关系。您好,nonkertompf!我尝试了您的代码,我相信这次它可以工作,但不幸的是,它没有插入。我不知道问题出在哪里。在我的DB中,我有表resu id,它是自动递增的,room_id,chair_number,student_name,stud_id和chair_status。你能帮我吗?我一直在重新检查我的代码,但不知道哪部分是错的。事实上,你理解我的问题。谢谢!顺便说一下,在gervent.php中,我只写了以下内容:$room_id=$\u POST['room_id',],可以吗?隐藏的输入类型值是value=“”,做得对吗?@Monica Negapatan Hi Monica。如果您隐藏的输入值是静态的,您应该设置通常不带php标记的值,正如您所知。只有当有多个房间要预订座位时,您才应该动态设置它们。例如,您可以通过获取房间va来设置要插入Monica.php表单中的值您应该为每个文件室页面都有一个特定的url,这样才能做到这一点,比如;/monica.php?room=14。因此,您可以使用GET方法将该特定值插入表单中,比如;。另外,您在gervent.php中所做的更改也可以。通过更改您所做的方式,您就不再检查会话不管之前是否设置了参数。此外,起初我没有查看整个gervent.php,因为我刚刚注意到了您的问题,但您的sql查询也不正确。请再次查看我对您的问题的回答,注意我编辑的部分,并像那样更改您的sql查询。嗨,nonkertompf!我刚刚注意到有一个error传递chair_num的值。我重复了它,发现即使我单击pc 04,chair_num的值也为5。我删除了chair number 5保留,以尝试它是否真的插入,但它仍然没有。它将重试。因此,我放置了这个初始化:实际上,我的表中有6个字段,其中一个res_id是自动递增的我研究并做了类似的事情:$query=mysql\u query(“插入到预订值中(NULL,$room\u id,$chair\u num,1,$name,$stud\u id)”);我不知道这是否是错误的。
<?php
session_start();

$name = $_POST['student_name'];
$stud_id = $_POST['stud_id'];
$room_id = isset($_SESSION['roomno']) ? $_SESSION['roomno'] : $_POST['room_id']; // here you set the value according to an already present existance of a session or not
$chair_num = isset($_SESSION['chairnum']) ? $_SESSION['chairnum'] : $_POST['chair_num']; // the same as above but this time for the chair number

mysql_connect("localhost", "root", "") or die (mysql_error());
mysql_select_db('seat_reservation') or die (mysql_error());
// below sql query is corrected by changing the WHERE clause with COLUMNS
$query = mysql_query("INSERT INTO reservation COLUMNS (room_id, chair_number, chair_status, student_name, stud_id) VALUES ($room_id, $chair_num, 1, $name, $stud_id)");

if($query) //there was no $insert variable set. This condition would always return false because the sql query which you insert the values to the DB is assigned to $query, not $insert
    die ("Seat reserved! <br />Redirecting...<meta http-equiv='refresh' content=2;monica.php>");

else 
    die ("Try Again! <br />Redirecting...<meta http-equiv='refresh' content=2;monica.php>");
?>