簡體   English   中英

通過ajax POST向PHP發送兩個值以查詢SQL數據庫

[英]Sending two values to PHP via ajax POST to query SQL db

我正在嘗試使用ajax post方法將兩個值從表單發送到另一個PHP。 一個值是已經在輸入框中輸入的值,另一個值是正在另一個輸入框中鍵入的值。 它的作用就像一個搜索框。 我嘗試在SQL工作台中執行SQL查詢,它正確返回了值。 我的代碼在做什么錯?

function searchq6(){
    var searchstate = $("input[name='region']").val();
    var searchTxt = $("input[name='suburb']").val();
    $.post("search-suburb.php", {searchVal: searchTxt, st:searchstate},function(sbb){
        $("#sbb").html(sbb);
    //searchq7();
    });

}

這是我在其中輸入並從中獲取值的輸入框:

<input type="text" name="region" list="state" value="<?php echo $region;  ?>" placeholder="Select State" id="output">
Suburb:
        <input type="text" name="suburb" list="sbb" value="<?php echo $suburb;  ?>" onkeyup="searchq6()" id="output">
        <datalist id="sbb" name="taskoption6" >
                <option> </option>
        </datalist>

這是search-suburb.php文件:

$output = '' ;
if (isset($_POST['searchVal'])){
$searchq = $_POST['searchVal'];
$st = $_POST['st'];
$query = mysqli_query($link, "SELECT DISTINCT title FROM `wp_locations`  WHERE state="'.$st.'"  AND `title` LIKE  '%".$searchq."%' ")or die("Could not  search!");
$count = mysqli_num_rows($query);
if($count == 0){
    $output = '<option>No results!</option>';
}else{
while($row = mysqli_fetch_array($query)){
    $suburb = $row['title'];

?>
    <option value="<?php echo $suburb; ?>"><?php echo $suburb; ?>  </option>
<?php
} // while
} // else
} // main if
<input type="text" name="region"  list="state" value="<?=(isset($_POST['region'])?$_POST['region']:'');?>" placeholder="Select State" id="output">
        Suburb:
<input type="text" name="suburb" onkeyup="searchq6()" list="sbb" value="<?=(isset($_POST['suburb'])?$_POST['suburb']:'');?>" onkeyup="searchq6()" id="output">
<datalist id="sbb" name="taskoption6"></datalist>

Javascript:

    function searchq6(){
        var searchstate = $("input[name='region']").val();
        var searchTxt = $("input[name='suburb']").val();
        $.post("search-suburb.php", {searchVal: searchTxt, st:searchstate},function(sbb){
            var decode = jQuery.parseJSON(sbb); // parse the json returned array
            var str = ""; // initialize a stringbuilder
            $.each(decode, function (x, y) {
                str+="<option value='" + y.title +"'>";
            });
            $("#sbb").html(str);
        }); // end of post

    }// end of searchq6 function

Php:

$output = '' ;
if (isset($_POST['searchVal'])){
    $searchq = $_POST['searchVal'];
    $st = $_POST['st'];
    $query = mysqli_query($link, "SELECT DISTINCT title FROM `wp_locations`  WHERE state='{$st}'  AND `title` LIKE  '%{$searchq}%' ")or die("Could not  search!");
    $count = mysqli_num_rows($query);
    if($count == 0){
        $output = '<option>No results!</option>';
    } else{
        $data = array();
        while($row = mysqli_fetch_array($query))
            $data[] = $row;
        echo json_encode($data);
    }
} // main if

從通過評論收集的小片段中得到答案將查詢更改為:

$query = mysqli_query($link, "SELECT DISTINCT title FROM `wp_locations` WHERE state='".$st."'  AND `title` LIKE  '%".$searchq."%' LIMIT 10")or die("Could not search!");

而ajax可以:

function searchq6(){
    var searchstate = $("input[name='region']").val();
    var searchTxt = $("input[name='suburb']").val();
    $.post("search-suburb.php", {searchVal: searchTxt, st:searchstate})
    .done(function(sbb) {
        $("#sbb").html(sbb);
    });
    //searchq7();
}

謝謝大家的評論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM