2016-02-14 81 views
0

我有一個問題讓這段代碼的工作:交換機基於URL重定向

$(document).ready(function(){ 
    $('#ButtonAluguel').click(function(){ 
    { 
     var id = $(this).attr('name'); 
     var str = ""; 
     $("option:selected").each(function() { 
     switch(id=='Trololo'){ 
     case true: 
      var option = $(this); 
      str += '?tid_1[]='+ option.attr('value'); 
      break; 
     case false: 
      var option = $(this); 
      str += '?tid[]='+ option.attr('value');break; 
     } 
     }); 
     window.location = "localhost/aluguel"+ str; 
    }}); 
    }); 

我需要它不斷增加的東西的基礎上多選的名字,上面標識「STR」作爲ID。長話短說,如果選擇的名稱是「Trololo」,則ID添加tid_1 [],否則它將tid []添加到str。任何幫助表示讚賞。

編輯: 多重選擇代碼如下(忘了把它擺在首位,這個問題並沒有多大意義,沒有它)

 <form > 
<select class="SelectTipoAluguel" multiple="true" data-placeholder="Tipo de Imóvel" style="width:200px;"> 
     <option value="1">Aasdasdasd</option> 
     <option value="2">B</option> 
     <option value="3">C</option> 
     <option value="4">D</option> 
</select> 
<select name="Trololo" class="SelectBairroAluguel" id="trololo" multiple="true" data-placeholder="Bairro" style="width:200px;"> 
     <option value="1">Aadasd</option> 
     <option value="2">Basda</option> 
     <option value="3">Casda</option> 
     <option value="4">Dasda</option> 
</select> 
<input class="ButtonSubmitHome" id="ButtonAluguel" value="Pesquisar" > 
    </form> 

爲了更清楚地解釋它,用戶必須填寫表格和選項之間進行選擇,所以當他點擊"ButtonAluguel",從選擇"SelectTipoAluguel"每一個選項被添加到URL作爲tid[]"SelectBairroAluguel"的那些被添加到URL爲tid_1[]

+0

你只是認真地做了一個'開關(布爾)'有兩例TRUE;返回FALSE? 「if」發生了什麼? – user151496

+0

還有,它還應該附加到'str'上嗎?或者你的意思是說'option.attr('value')'沒有被追加?你有沒有試過控制檯日誌記錄,看看裏面有什麼?也許它真的是空的 – user151496

+0

也嘗試過,但它給了我相同的回報。代碼中的所有內容都可以正常工作,只有問題是tid_1 []和tid []之間交替的部分。 –

回答

1

代碼編輯引用更新的que stion和OP的評論。

$(document).ready(function() { 
 
    var id; 
 
    var str = ""; 
 
    $('#ButtonAluguel').click(function() { 
 
    var option = []; 
 
    $('select option:selected').each(function(i, selected) { 
 
     id = $(this).parent().attr('name'); 
 
     option[i] = $(selected).val(); 
 
     if (id == 'Trololo') { 
 
     str += '?tid_1[]=' + option[i]; 
 
     } else { 
 
     str += '?tid[]=' + option[i]; 
 
     } 
 
    }); 
 
    var url = "localhost/aluguel" + str; 
 
    console.log(url); 
 
    //window.location = "localhost/aluguel" + str; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="SelectTipoAluguel" multiple="true" data-placeholder="Tipo de Imóvel" style="width:200px;"> 
 
    <option value="1">Aasdasdasd</option> 
 
    <option value="2">B</option> 
 
    <option value="3">C</option> 
 
    <option value="4">D</option> 
 
</select> 
 
<select name="Trololo" class="SelectBairroAluguel" id="trololo" multiple="true" data-placeholder="Bairro" style="width:200px;"> 
 
    <option value="1">Aadasd</option> 
 
    <option value="2">Basda</option> 
 
    <option value="3">Casda</option> 
 
    <option value="4">Dasda</option> 
 
</select> 
 
<input class="ButtonSubmitHome" id="ButtonAluguel" value="Pesquisar">

+0

您的回答使我澄清了一些事情,我編輯了我的原始文章以使事情更加清晰 –

+0

已更新。讓我知道,如果這是你的意思。注意查詢字符串中第二個鍵/值的'?'更改爲'&'。 – sideroxylon

+0

這幾乎是完美的,唯一的問題是它與同一頁面中的其他表單發生衝突,並且,當我需要它真正複製?tid時,它將得到用逗號分隔的值,因此如果1,2和3是選擇,它需要返回?tid [] = 1?tid [] = 2?tid [] = 3,而不是tid [] = 1,2,3。 原諒我,如果我是一個freeloader,但我的頭只是拒絕完全理解JavaScript。 –