php
  • jquery
  • ajax
  • 2016-09-17 50 views 2 likes 
    2

    的index.php如何通过多个#div ID在阿贾克斯的高级搜索功能

    $('#search1, #search2').change(function() { 
    var value = $(this).val(); 
    $.ajax({ 
        type:"post", 
        url:"php/search.php", 
        data:'task1='+value, 
        success: function(response){ 
        $('#result').html(response); 
        } 
        }); 
    }); 
    
    <select id="search1" name="task1">....</select> 
    <select id="search2" name="task2">...</select> 
    
    <div id="result"></div> 
    

    的search.php

    if (isset($_POST['task1']) ? $_POST['task1'] : false) { 
        $option = isset($_POST['task1']) ? $_POST['task1'] : false; 
        $sql = "SELECT * FROM <tablename> WHERE <columnName>='$option'"; 
        if (isset($_POST['task2']) ? $_POST['task2'] : false) { 
        $pilihan = isset($_POST['task2']) ? $_POST['task2'] : false; 
        $sql = "SELECT * FROM <tablename> WHERE <columnName>='$option' and <columnName>='$pilihan'"; 
        } 
    } 
    

    我的问题是我如何能传递多个# div分成一个ajax。换句话说,如何确保#search2和#task2可以传递和查询与#search1和#task1相同的进程。

    回答

    2

    您可以在更改选项并创建新变量的同时获取选择标签的名称,然后传递该数据。

    的index.php

    $('#search1, #search2').change(function() { 
    var value1 = $(#search1).val(); 
    var value2 = $(#search2).val(); 
    var str = 'task1='+value1+'task2='+value2; 
    $.ajax({ 
        type:"GET", 
        url:"php/search.php", 
        data: str, 
        success: function(response){ 
        $('#result').html(response); 
        } 
        }); 
    }); 
    
    <select id="search1" name="task1">....</select> 
    <select id="search2" name="task2">...</select> 
    
    <div id="result"></div> 
    

    的search.php

    $option = false; 
    if (isset($_GET['task1'])) { 
        $option = $_GET['task1']; 
        $sql = "SELECT * FROM <tablename> WHERE <columnName>='$option'"; 
    } 
    if (isset($_GET['task2']) { 
        if (isset($_GET['task1'])) { 
         $option = $_GET['task1']; 
        } 
        $pilihan = $_GET['task2']; 
        $sql = "SELECT * FROM <tablename> WHERE <columnName>='$option' and <columnName>='$pilihan'"; 
    } 
    

    我希望这将有助于实现你的目标

    +0

    非常感谢,现在我可以通过每个函数,它会给出基于所选列的结果 – nzrnfourtwenty

    +0

    如果我选择“task1”,它将显示#search1 div的一组结果。但是如果我同时选择“task1”和“task2”,它将根据选择过滤更多结果。你可以帮我吗? – nzrnfourtwenty

    +0

    欢迎您:),更新了答案,如果需要更多的帮助,请提问另一个问题 – Sathish

    相关问题