2014-03-07 72 views
-1

我希望將$ module_id和$ user_name傳遞給url。點擊按鈕提交後,如何將下拉列表中的選定值傳遞給url查詢字符串?

下面的代碼不會將正確的值從下拉列表傳遞到URL查詢字符串。你能告訴我什麼是缺少的?

<?php 
    $root = $_SERVER['HTTP_HOST']; 
    $fullname = $_POST['user_name']; 
    $user_name = explode(" ", $fullname); 
    $module_id = $_POST['e_learning_module']; 
    ?>       
         <form action="<?php echo home_url() . '/certificate/print-request-certificate.php?id=' . $module_id . '&fname=' . $user_name[0] . '&lname=' . $user_name[1]; ?>" method="post" name=""> 
<select id="user_name" name="user_name"> 
<option value="default">Names</option> 
<?php 
$query = mysql_query('SELECT DISTINCT fname, lname FROM wl_activity_logs ORDER BY fname ASC'); 

while($row = mysql_fetch_array($query)) { 
echo '<option value="' . htmlentities($row['fname'], ENT_QUOTES) . ' ' . htmlentities($row['lname'], ENT_QUOTES) . '">' . htmlentities($row['fname'], ENT_QUOTES) . ' ' . htmlentities($row['lname'], ENT_QUOTES) . '</option>'; 
} 
?> 
</select> 
<input type="hidden" name="user_name" id="user_name_hidden"> 

<select id='e_learning_module' name="e_learning_module"> 
<option value="default">E-Learning Modules</option> 
<?php 
global $post; 
$args = array(
'numberposts' => -1, 
'post_type' => 'wpsc-product', 
'post_status' => 'publish', 
'wpsc_product_category' => 'e-learning-modules', 
'order' => 'ASC' 
); 
$e_learning_modules = get_posts($args); 

foreach($e_learning_modules as $post) { 
            setup_postdata($post); 
$id = $post->ID; 
?> 
<option value="<? echo $id; ?>"><?php the_title(); ?></option> 
<?php 
} 
?> 
</select> 
<input type="hidden" name="e_learning_module" id="e_learning_module_hidden"> 

<input type="submit" value="Print" name='print' /> 
</form> 
+0

爲什麼不添加它們作爲隱藏字段。表單方法是POST並使用$ _POST,這些值可以被捕獲。 –

回答

0

你haave使用如下形式的'get'(method="get")。

<form action="<?php echo home_url() . '/certificate/print-request-certificate.php?id=' . $module_id . '&fname=' . $user_name[0] . '&lname=' . $user_name[1]; ?>" method="get" name=""> 
+0

'?e_learning_module = 351&e_learning_module_hidden =&user_name = Amanda + Walker&user_name_hidden =&print = Print' Thanks!我只想得到351和阿曼達+沃克只,我該怎麼做? – user3349519

+0

你可以通過刪除下面的輸入隱藏元素來實現這一點。 ' –

+0

這樣開闢了另一種解決我的方法問題。 – user3349519

0

你有2個字段具有相同名稱 'USER_NAME':

<select id="user_name" name="user_name"></select>

<input type="hidden" name="user_name" id="user_name_hidden">

您需要更改第二個到另一個名稱(例如: user_name_hidden)或將第一個名稱更改爲另一個名稱(例如:full_name),然後使用$fullname = $_POST['full_name'];

+0

謝謝。但它沒有從'的值不會被檢索。這就是爲什麼你必須重命名這兩個領域之一。您可以嘗試將''更改爲''預期的結果! –

+0

此外,不要將表單方法更改爲GET,因爲$ _POST將變爲無用(空)。 –

2

變化

<form action="<?php echo home_url() . '/certificate/print-request-certificate.php?id=' . $module_id . '&fname=' . $user_name[0] . '&lname=' . $user_name[1]; ?>" method="post" name="">

<form action="<?php echo home_url() . '/certificate/print-request-certificate.php" method="GET" name="">

添加下面的表單標籤下面的代碼

<input type="hidden" name="id" value="<?php echo $module_id?>"> <input type="hidden" name="fname" value="<?php echo $user_name[0]?>"> <input type="hidden" name="lname" value="<?php echo $user_name[1]?>">

相關問題