2016-04-24 77 views
0

變量$ role_id1未在$ _POST ['add sub menu']中的$ role_id中獲取。 我想在$ role_id中存儲$ role_id1並插入到數據庫中。我單擊提交按鈕時,role_id1正在提取父菜單,但是當我單擊添加子菜單後,role_id正在將0存儲在後端。但我希望它存儲在我點擊提交後正在提取的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']) . '">'; 

一個阿里納斯(的完整性),但該元素是隱藏的可以由用戶來改變的值。