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

使用php在同一页面上使用下拉菜单的选定项,php,Php,我已经用php创建了下拉菜单,我想在当前页面的url上使用菜单的选定值。如何在不重定向到下一页的情况下执行此操作。创建下拉菜单的代码为: echo '<select name="Company">'; if($data['count']>0){ foreach($data['results'] as $key=>$value){ echo "<option value='".$value['CID']."'>".$value['Name']."</opt

我已经用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>";
echo';
如果($data['count']>0){
foreach($data['results']作为$key=>$value){
回显“$value['Name']”;
}
}
回声“;

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

那不行。我将向您展示它的工作原理:

PHP呈现页面->将其提供给您

当您看到该页面时,php脚本已经完成。因此,您必须再次调用您的页面,并通过$\u 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>";
echo
回声';
如果($data['count']>0){
foreach($data['results']作为$key=>$value){
回显“$value['Name']”;
}
}
回声“;
。。。或者$\u GET(这只与JS结合使用!)

echo“”

您需要使用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>

现在还不完全清楚如何使用这个值,但是可以使用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>

函数更新_框(){
所选值=document.getElementById('company_下拉列表')。值;
document.getElementById('your_company')。innerText=所选的_值;
}
A.
B
C
贵公司是:

如果我答对了,您希望通过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'] : ''; ?>
echo';
如果($data['count']>0){
foreach($data['results']作为$key=>$value){
回显“$value['Name']”;
}
}
回声“;
更改下拉列表中的值时,当前页面将使用querystring中选定的选项值刷新。您可以按如下方式使用querystring值:-

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'] : ''; ?>

您也可以通过使用散列值来执行此操作,而无需刷新页面

当您更改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 
    });
});