2016-12-01 12 views
0

我有一個頁面有三個複選框選項。我想用這三個複選框作爲數據過濾器。如果用戶手動提交表單,我有三個複選框過濾。試圖讓阿賈克斯呼叫工作

我想刪除提交按鈕,所以無論何時用戶選擇我的表單中的一個選項,選項都會發送到ajax。目前,我的代碼只發送最後一個複選框,因爲我在搜索中找到了這個值。我不太確定我是如何循環瀏覽表格中的所有選中框併發送。我遇到的第二件事是fetch.php是一個'安全'頁面,只有連接到數據庫才能檢索數據,如果在會話變量中正確設置了某個用戶名和密碼。如果我使用ajax調用獲取頁面,我認爲它將它視爲訪問客戶端範圍之外的此頁面,即即使用戶從調用ajax的頁面登錄,會話變量也不會通過憑據。那是對的嗎?爲了糾正這一點,我試圖通過數據線通過用戶名密碼,我有我的數據線設置正確的多個參數?

<form id="form"> 
    <div class="filterblock"> 
      <input id="check1" type="checkbox" name="search[]" value="Cars" class="category"> 
     <label for="check1">Cars</label> 
    </div> 

    <div class="filterblock"> 
      <input id="check2" type="checkbox" name="search[]" value="Trucks" class="category"> 
     <label for="check2">Trucks</label> 
    </div> 

    <div class="filterblock"> 
      <input id="check3" type="checkbox" name="search[]" value="Bikes" class="category"> 
     <label for="check3">Bikes</label> 
    </div> 
    <input id="submit" type="submit" name="submit" value="Submit" onclick="submitForm()" /> 

    </form> 

AJAX調用

$('.category').change(function() { 

    var user = <?php echo $_SESSION['login']['logged_username'] ;?>; 
    var pass = <?php echo $_SESSION['login']['logged_password'] ;?>; 

$.ajax({ 
    url: fetch.php', 
    type: 'POST', 
    data: {search: this.value, user: user, pass: pass}, 
dataType:'html', 
    success:function(data) 
    { 
     $('#result').html(data); 
    } 

    }); 
}); 
+0

兩件事。你使用複選框(多選)代替單選按鈕嗎? (單選)。另外,這個'<?php echo $ _SESSION ['login'] ['logged_username'];?>'將會失敗,因爲您需要將它用引號引起來供Javascript使用。 –

+0

是的,我使用複選框進行多選。我在我的fetch.php頁面的查詢中處理了多個選擇。 – JK36

回答

0

這可能會接近你的目標。使用jQuery.serialize()來獲取所有表單數據。

$('.category').change(function() { 

    var user = "<?php echo $_SESSION['login ']['logged_username '] ;?>"; 
    var pass = "<?php echo $_SESSION['login ']['logged_password '] ;?>"; 

    var data = $('#form').serialize(); 
    data.user = user; 
    data.pass = pass; 
    data.search = this.value; 
    $.ajax({ 
     url: fetch.php ', 
     type: 'POST', 
     data: data, 
     success: function(data) { 
      $('#result').html(data); 
     } 

    }); 
}); 
+0

謝謝codenoir,無法獲取用戶並傳遞給數據設置,我嘗試了文字字符串,刪除PHP元素嘗試,但它沒有奏效。最終發現我並不需要它們。我只需要通過搜索條件。 – JK36