2016-04-24 11 views
0

$ role_id1変数は$ _POST ['add sub menu']の$ role_idで取り出されていません。 私は$ role_idに$ role_id1を格納し、database.Aferに挿入したいと思います。サブミットボタンをクリックするとrole_id1が親メニューを取得しますが、サブメニューを追加した後、role_idは0をバックエンドに保存します。可能であれば、submit.Suggestをクリックした後に取得されるrole_id1の値。フォームを送信した後に変数を取ってくる

<?php 

$dbcon = new MySQLi("localhost","root","","menu"); 
if(isset($_POST['add_main_menu'])) 
{ 
$menu_name = $_POST['menu_name']; 
$parent_id = 0; 
$role_id = $_POST['role_id']; 
$menu_link = $_POST['mn_link']; 
$sql=$dbcon->query("INSERT INTO menu VALUES('','$menu_name','$parent_id','$role_id','$menu_link')"); 
} 
    if(isset($_POST['add_sub_menu'])) 
{ 
$parent_id = $_POST['parent']; 
$name = $_POST['sub_menu_name']; 

$role_id = $role_id1; 
$menu_link = $_POST['sub_menu_link']; 

$sql=$dbcon->query("INSERT INTO menu VALUES('','$name','$parent_id','$role_id','$menu_link')"); 
} 

?> 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Dynamic Dropdown Menu</title> 
<link rel="stylesheet" type="text/css" href="style.css" media="all" /> 
</head> 
<body> 
<div id="head"> 
<div class="wrap"><br /> 
<h1><a href="index.php">Back to menu</a></h1> 
</div> 
</div> 
<center> 
<pre> 
<form method="post"> 
<input type="text" placeholder="menu name :" name="menu name" /><br /> 

<input type="text" placeholder="role id :" name="role_id" /><br /> 
<input type="text" placeholder="menu link :" name="mn_link" /><br /> 
    <button type="submit" name="add_main_menu">Add main menu</button> 
</form> 
</pre> 
<br /> 
<pre> 
<form method="post"> 
<select name="role_id"> 
<option selected="selected">select role id</option> 

<?php 
$res=$dbcon->query("SELECT distinct role_id FROM menu"); 
while($row=$res->fetch_array()) 
{ 
    ?> 
    <option value="<?php echo $row['role_id']; ?>"><?php echo  $row['role_id']; ?></option> 
<?php 
} 
    ?> 
    </select><br /> 
    <input type="submit" value="submit" name="submit"> 

<?php if(isset($_POST['submit'])) 
{ 
?> 
<select name="parent"> 
    <option selected="selected">select parent menu</option> 
<?php 
$role_id1 = $_POST['role_id']; 

$res=$dbcon->query("SELECT * FROM menu where role_id= $role_id1 AND parent_id=0 "); 
while($row=$res->fetch_array()) 
{ 
?> 
    <option value="<?php echo $row['id']; ?>"><?php echo $row['name'] 
; 

?></option> 
<?php 


    } 
    } 



    ?> 
    </select><br /> 
    <input type="text" placeholder="menu name :" name="sub_menu_name" /><br /> 
    <input type="text" placeholder="menu link :" name="sub_menu_link" /><br /> 
    <button type="submit" name="add_sub_menu">Add sub menu</button> 
</form> 
    </pre> 
    <a href="index.php">back to main page</a> 
    </center> 

    </body> 
    </html> 
+4

htmlフォームの表示から始めます。 –

+0

あなたは決して$ role_id1を宣言しません – Jojo

答えて

1
$role_id1 = $_POST['role_id']; 

スクリプトが(最後の行)を停止し、出力は(あなたがもう一度フォームを参照してください)ブラウザに送信された場合$role_id1の寿命があります。だからあなたのコードの先頭の行に

は:

$role_id = $role_id1; 

$role_id1はもう存在しません。エラーログを表示する(またはdisplay_errorsをオンにする)場合は、

が表示されます。その値を保持したい場合は、隠し要素に入れて、次のPOSTデータに含めます要素は、ユーザが変更できる値が隠されているものの、(完全性)

echo '<input type="hidden" name="previous_role_id" value="' . htmlspecialchars($_POST['role_id']) . '">'; 

ワン追記:時間あなたはそのフォームを送信します。

関連する問題