使用ComboBox刷新页面而不刷新

时间:2015-01-28 16:26:52

标签: php mysql ajax

如何在不提供刷新的情况下使用ComboBox更新.php页面? 我有这个代码,它获取了Combo的值并将其移至页面,但是这样做会重新加载失去初始搜索的页面,但我需要传递保留上一次调查的值。

代码:

<form action="produtos.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
 <select name="filtro" id="filtro" onchange="valueselect(this.value);">
   <option value="0">Popularidade</option>
   <option value="1">A-Z</option>
   <option value="2">Z-A</option>
 </select>
</form>

<script type="text/javascript" language="javascript">
function valueselect(filtro)
{
      window.location.href = "produtos.php?filtro="+filtro;
}
</script> 

我正在尝试做这样的事情:

<script type="text/javascript" language="javascript">
function  pesquisa(filtro) {
var id = $("#filtro").val();   
$.ajax({
type: "GET",
url: produtos.php,
       data: (filtto : id),
        dataType: "json",
        success: function(obj) {
         $('#message')[0].value = filtro
            }
        }
    });
}
</script>

但没有任何反应。

这是开发中的页面: Page

1 个答案:

答案 0 :(得分:1)

在select的onchange事件上你可以编写javascript来发布表单并读取服务器端的select-option但是先做isset($ _ POST [&#39; filtro&#39;])然后编写有意义的代码在大括号内处理选项。

如果你想在帖子中保持select-option的状态,你必须编写javascript函数,在页面加载后(在结束标记附近)设置select选项的selectedIndex并且这个js将在post post上由服务器处理,它将输出JS以根据用户选择的内容选择适当的索引。应该在2分钟后发布代码.. 这是代码:

<html><body>
<form action="produtos.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
 <select name="filtro" id="filtro" >
   <option value="0">Popularidade</option>
   <option value="1">A-Z</option>
   <option value="2">Z-A</option>
 </select>
</form>

<script type="text/javascript" language="javascript">
document.getElementById('filtro').onchange=function(){
    document.getElementById('form1').submit();
}

function setSelected(value){
    var filtro = document.getElementById('filtro');
    var options = filtro.options;
    for(var i=0;i<options.length;i++){
        if(options[i].value == value){
            filtro.selectedIndex = i;
        }
    }   
}
</script> 
<?php
if(isset($_POST['filtro'])){
    $selectedValue = $_POST['filtro'];
    // code to process the data
    //...

    // code to remember dropdown
    echo "<script type='text/javascript'>setSelected($selectedValue)</script>";


}

?>
</body>
</html>