2015-01-28 2 views
1

새로 고침을하지 않고 ComboBox를 사용하여 .php 페이지를 업데이트하려면 어떻게해야합니까? 이 코드는 콤보 값을 사용하여 페이지로 이동하지만 초기 검색을 잃어 버리는 페이지를 다시로드하지만 이전 설문 조사를 유지하는 값을 전달해야합니다.새로 고침이없는 ComboBox로 페이지 새로 고침

코드 :

<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> 

을하지만 아무 반응이 없습니다 :

<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> 

나는 이런 식으로 뭔가를 시도하고있다. 당신이는 isset에게 ($ _ POST의 [ '을 양식을 게시하고 서버 측의 선택 - 옵션을 읽을 수 있지만 먼저해야 할 자바 스크립트를 작성할 수 선택의 onchange를 이벤트에 Page

+0

당신이 숨겨진 양식 필드를 유지하고 포스트 방법을 사용하여 검색하려는 변수를 전달할 수있을 때 페이지가 새로 고쳐 – user3479671

답변

1

:

개발의 페이지입니다 filtro ']) 그런 다음 중괄호 안에 의미있는 코드를 작성하여 옵션을 처리하십시오.

포스트에서 select 옵션의 상태를 유지하려면 페이지가 닫힌 태그 근처에로드 된 후 select 옵션의 selectedIndex를 설정하는 javascript 함수를 작성해야하며이 js는 게시 작업에서 서버에 의해 재 지정되고 사용자가 선택한 것을 기반으로 적절한 색인을 선택하기 위해 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> 
관련 문제