Javascript 单击“提交”按钮时,如何将下拉列表中的选定值传递到url查询字符串?

Javascript 单击“提交”按钮时,如何将下拉列表中的选定值传递到url查询字符串?,javascript,php,jquery,Javascript,Php,Jquery,我希望将$module_id和$user_名称传递到url 下面的代码没有将正确的值从下拉列表传递到URL查询字符串。你能告诉我少了什么吗 <?php $root = $_SERVER['HTTP_HOST']; $fullname = $_POST['user_name']; $user_name = explode(" ", $fullname); $module_id = $_POST['e_learning_module']; ?&g

我希望将$module_id和$user_名称传递到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> 

您有两个同名“user\u name”的字段:

您需要将第二个名称更改为另一个名称,例如:user\u name\u hidden或将第一个名称更改为另一个名称,例如:full\u name,然后使用$fullname=$\u POST['full\u name']

变化


您必须使用formmethode作为'get'方法=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="">

为什么不将它们添加为隐藏字段。表单方法是POST,使用$\u POST可以捕获值。谢谢。但它没有从中拾取所选值,因为您有两个同名字段。在这种情况下,只检索表单中最后一个字段的值。在表单中,隐藏字段是最后一个值为空的字段。这就是无法从中检索值的原因。这就是为什么必须重命名这两个字段中的一个。您可以尝试更改为,您将看到所需的结果!另外,不要将表单方法更改为GET,因为$u POST将变成无用的空。e\u learning\u module=351&e\u learning\u module\u hidden=&user\u name=Amanda+Walker&user\u name\u hidden=&print=print谢谢!我只想得到351和Amanda+Walker,我该怎么做?你可以通过删除下面的输入隐藏元素来实现这一点。