0

私のページの検索ボタンをクリックすると、通常、クエリの結果が出力されます。ただし、フィールドの値に空白があるという条件に関して問題があります。私がやっていることは、文字列をトリミングし、LIKE ステートメントを使用してデータベースで検索することです。

    $(document).ready(function(){
 $('#btnsearch').click(function(e) {
        $("#content0 #sub_cont0").load("view/search.php?document=<?php echo $_GET['document']; ?>&stat=<?php echo $_GET['stat']?>&ac=<?php echo $_GET['ac']; ?>&fac=<?php echo $_GET['fac']; ?>&val=" + $("#txtsearch").val() + "&model=<?php echo trim($_GET['model']);?>");
        $(".tblmodellist").fadeOut("slow");
  });
});

たとえば、「casing」という単語を検索します。カテゴリ モデル = "テスト モデル" の下。これがデータベースでクエリされると、このクエリを使用して何も出力されません。注:上記のスクリプトでは、出力が「テスト」のみになるようにモデルをトリミングしました。それでも、期待した結果セットが返されません。

  $sql =    "SELECT * FROM $db WHERE (
    FileName LIKE '%" . $id . "%' OR
    $title LIKE '%" . $id . "%' OR
    $no LIKE '%" . $id . "%' )
    AND (Stat = '$stat' AND Model LIKE '%".$model."%')
    ";

私のajaxリクエストの問題は何だと思いますか? $_GET['model'] を中央に配置すると、クエリが削減されて NULL 値になることが、デバッグ中に以前にわかりました。これが、行の最後に配置した理由です。

4

1 に答える 1

0
<?
    $urlParams = array('document', 'stat', 'ac', 'fac', 'model');
    $urlQuery = array();
    foreach($urlParams as $urlParam)
        $urlQuery[ $urlParam ] = $_GET[$urlParam];
?>

$(document).ready(function(){
    $('#btnsearch').click(function(e) {
        $("#content0 #sub_cont0").load("view/search.php?<?php echo http_build_query($urlQuery); ?>&val=" + $("#txtsearch").val());
        $(".tblmodellist").fadeOut("slow");
    });
});
于 2013-08-20T06:35:00.110 に答える