0

我已经使用 php 创建了下拉菜单,我想在当前页面的 url 上使用 menu 的选定值。我如何在不重定向到下一页的情况下做到这一点。创建下拉菜单的代码是:

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

5 回答 5

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()
于 2013-11-12T12:19:28.640 回答
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 
    });
});  
于 2013-11-12T13:10:35.180 回答
0

如果我做对了,您想通过查询字符串使用从同一页面 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'] : ''; ?>
于 2013-11-12T12:34:32.470 回答
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>
于 2013-11-12T12:27:37.813 回答
0

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

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

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

当您看到该页面时,php-script 已经完成。所以你必须再次调用你的页面并通过 $_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>"
于 2013-11-12T12:17:14.810 回答