使用php在同一页面上使用下拉菜单中选定的项目

时间:2013-11-12 12:10:39

标签: php

我使用php创建了下拉菜单,我想在当前页面的url上使用所选的菜单值。如何在不重定向到下一页的情况下执行此操作。创建下拉菜单的代码是:

echo '<select name="Company">';
if($data['count']>0){
foreach($data['results'] as $key=>$value){
echo "<option value='".$value['CID']."'>".$value['Name']."</option>";
}
}
echo "</select>";

5 个答案:

答案 0 :(得分:0)

坎?不知道你到底想要什么。您想创建一个下拉菜单并使用当前php页面上的选定值吗?

那不行。我会告诉你它是如何工作的:

PHP呈现页面 - &gt;给你的。

当您看到该页面时,php脚本已经完成。因此,您必须再次调用您的页面,并通过$ _POST ...

为其提供值
echo <form action="page.php" method="post">
echo '<select name="Company">';
if($data['count']>0) {
    foreach($data['results'] as $key=>$value){
        echo "<option value='".$value['CID']."'>".$value['Name']."</option>";
    }
}
echo "</select></form>";

...或$ _GET(这只与JS结合使用!)......

echo "<a href='page.php?company=companyname'>Im a link!</a>"

答案 1 :(得分:0)

您需要使用javascript或JQuery获取下拉值

在Javascript中:

<script type="text/javascript">
var myselect=document.getElementById("Company")
for (var i=0; i<myselect.options.length; i++){
 if (myselect.options[i].selected==true){
  alert("Selected Option's index: "+i)
  break
 }
}
</script>

在JQuery中

$('select[name=Company]').val()

答案 2 :(得分:0)

您想要如何使用此值并不完全清楚,但您可以使用javascript在同一页面上引用它。请考虑下面的代码,只要从下拉框中选择了新选项,它就会更新“您的公司是:”这一行。

<script type="application/javascript">
    function update_box() {
        selected_value = document.getElementById('company_dropdown').value;
        document.getElementById('your_company').innerText = selected_value;
    }
</script>

<form action="page.php" method="post" id="my_form" name="my_form" onchange="update_box()">
    <select name="company_dropdown" id="company_dropdown">
        <option value='A'>A</option>
        <option value='B'>B</option>
        <option value='C'>C</option>
    </select>
</form>


Your company is: <span id="your_company" name="your_company"></span>

答案 3 :(得分:0)

如果我做对了,你想通过querystring在同一页面url上使用下拉列表中的选定值。 你可以这样做: -

echo '<select name="Company" onchange="location.href = location.href+'?var=' + this.value">';
if($data['count']>0){
foreach($data['results'] as $key=>$value){
    echo "<option value='".$value['CID']."'>".$value['Name']."</option>";
}
}
echo "</select>";

当您更改下拉列表中的值时,当前页面将使用查询字符串中的所选选项值进行刷新。您可以使用以下查询字符串值: -

<?php echo isset($_GET['var']) ? $_GET['var'] : ''; ?>

答案 4 :(得分:0)

您也可以通过使用哈希值而不刷新页面来实现

当您更改onchange事件的下拉列表时,您可以编写代码

onchange="window.location.hash(this.value);

它会在url中设置一个哈希值然后你可以编写一个函数来检测哈希值的变化,因为页面没有刷新你需要跟踪哈希值的变化然后你可以显示基于哈希值选择菜单。

使用此功能检测哈希值的变化

$(document).ready(function() {
    $(window).bind('hashchange', function(e) {
        var hashStr = window.location.hash;
        hashStr = hashStr.substring(1, hashStr.length);
        hashArray = hashStr.split('&');
        // here you will get the array of all the parameters you passed in the array 
    });
});