2016-05-15 41 views
0

我有一個<select>框。基於用戶選擇的顯示形式 - ajax

用戶必須選擇一個選項才能繼續。

然後,<select>框應該消失(select.onchange(html.(display:hidden;)),這樣的東西,對吧?!)和<option>必須通過ajax發送到另一個文件或 - 相同。

<select name="var" id="var"> 
    <option value="a">A</option> 
    <option value="b">b</option> 
</select> 

接着,將執行查詢(基於先前的選擇),並建立的形式的組合(其可以是一個或多個)一個div內部供用戶選擇:

<div> 
    <p>Some info</p> 
<form> 
    <inputs> 
    <inputs> 
    <inputs> 
</form> 
</div> 

我沒有太多的JavaScript,我有點失去了功能(load(),getJSON()等)。

這是什麼目的?

我想getJSON() *,但我有語法,調試和操作變量,請求等

所有的PHP代碼工作的問題。 我只想爲用戶增加平滑度,減少刷新次數,提高安全性和性能。

*似乎的getJSON不適合這個

回答

1

你可以使用的onchange的Javascript事件:https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onchange

var selectField = document.getElementById('selectField'); 
selectField.onchange = function() 
{ 
    //Select Value 
    var value = selectField[selectField.selectedIndex].value; 
    //Hides the field 
    selectField.style.display = "none"; 
    //Display the value 
    document.getElementById("container").innerHTML = value; 
} 

HTML -

<div id="container"> 
<select id="selectField" > 
    <option value ="a">A</option> 
    <option value ="b">B</option> 
</select> 
</div> 

在線演示:https://jsfiddle.net/acqwwbfb/2/ 這只是爲了讓你開始。

+0

酷,Liriant,我想隱藏的盒子中,避免用戶從選項更改爲選項,然後,進行太多的SQL查詢和服務器過載。這種情況下最好的方法是什麼?穆罕默德, –

1

當你標記一個jQuery你可以使用.on('change')和創造的形式排列,你將需要使用..像JS中這樣

$(document).ready(function(){  
    $('select#var').on('change',function(){ 
    var getValue = $(this).val(); 
    $.ajax({ 
     url : 'yourUrl.php', 
     type : 'post', 
     data : {value : getvalue}, 
     success : function (data){ 
      alert(data); 
      /*if(data !== 0){ 
      $('#show_forms').html(data); 
      }*/ 
     }, 
     error : function(){ 
     alert('error please check the url'); 
     } 
    }); 
    }).change(); 
}); 

index.php文件您鏈接的js與

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<select name="var" id="var"> 
    <option value="a">A</option> 
    <option value="b">b</option> 
</select> 

<div id="show_forms"></div> 

yourUrl.php文件,你會在

<?php 
    echo $_POST['value']; 
?> 
012檢查dabase

此代碼後,你應該得到警報,選擇值

+0

將基於SQL查詢構建表單。如果根本沒有返回的行,則不顯示任何表單;但是如果找到一行或多行,那麼它將顯示與行一樣多的表單。這就是爲什麼我想用「ajax」而不是普通的PHP(因爲刷新)。 –

+0

@RafaelVidal我更新我的答案..你可能需要開始它..至少連接js和php並返回數據 –

+0

我想隱藏