-1

これに関する関連記事を読んでいますが、まだ正しい答えが得られません。私は彼らのアドバイスを適用しましたが、私が望むものを達成することができませんでした. 私はこれを達成したいと思っていました: [送信] ボタンをクリックすると、$_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>

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>");
   ?>

したがって、gervent.php は monica.php から SESSION 値を取得して、挿入時に使用できるようにする必要があります。onclickでどのように可能ですか?注: 簡単な説明で言えば、私は PHP の高速レーンには遅すぎます。ありがとう!

4

2 に答える 2

0

意味はありませんが、フォームが存在するページでセッション変数が「具体的に」設定され、他のページで変更された場合のみです(ここでのセッション変数はユーザーが開いたルームページに従って設定され、それぞれに異なるセッション変数が設定された座席を予約するための複数のルームページがある場合があります) またはセッションがオプションであり、フォームがあるページでセッションが開始されていない場合は、部屋と椅子の番号の値を持つ非表示の入力フィールドをフォームに追加できます (そして、それらをフォームに事前定義する方法を見つける必要があります。たとえば、$_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>

フォームの値を受け取るページは次のようになります。

<?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>");
?>

このように JavaScript の onclick イベントを使用する必要はありません。

于 2012-08-01T18:11:26.740 に答える
0

$_SESSION変数自体は「渡されません」。それらはスクリプト間で保持されるため、渡す必要はありません。必要に応じてそれらを設定/変更し、サーバー側で好きな場所に呼び出すだけです (ただしsession_start()、ページの先頭で呼び出した場合は、既に知っているはずです)。

于 2012-08-01T17:11:33.623 に答える