2012-04-24 4 views
1

jqueryプラグインDatablesを使用していますが、フィルタ処理を行うためにPHP処理ファイルを使用しています。私はすでに複数のキーワードを許可するようにコードを修正しました。しかし、開始文字としてスペースを入力すると、JSONエラーが発生します。このエラーは、OKをクリックしなくても無視することができますか?またはスペースを開始できるようにPHPを修正する方法があります。は、データベースのフィルタリングの開始時にスペースを無視する手段ですか?

おかげ

HERESにいくつかのコード:半角スペースを2つの配列を返します

$e = preg_split('/\s+/', " "); 
print_r($e); 

分割:

$sWhere = ""; 
    if ($_GET['sSearch'] != "") 
    { 
      $aWords = preg_split('/\s+/', $_GET['sSearch']); 
      $sWhere = "WHERE ("; 

      for ($j=0 ; $j<count($aWords) ; $j++) 
      { 
        if ($aWords[$j] != "") 
        { 
          if(substr($aWords[$j], 0, 1) == "!"){ 
            $notString = substr($aWords[$j], 1); 
            $sWhere .= "("; 
            for ($i=0 ; $i<count($aColumns) ; $i++) { 
              $sWhere .= $aColumns[$i]." NOT LIKE '%".mysql_real_escape_string($notString)."%' AND "; 
            } 
            $sWhere = substr_replace($sWhere, "", -4); 
          } 
          else{ 
            $sWhere .= "("; 
            for ($i=0 ; $i<count($aColumns) ; $i++) { 
              $sWhere .= $aColumns[$i]." LIKE '%".mysql_real_escape_string($aWords[$j])."%' OR "; 
            } 
            $sWhere = substr_replace($sWhere, "", -3); 
          } 
          $sWhere .= ") AND "; 
        } 
      } 

答えて

1

あなたの問題は、単一のスペース文字列上で動作preg_split()であります空の文字列。これに最初の行を変更します。

$term = trim($_GET['sSearch']); 
if ($term != "") 
{ 
     $aWords = preg_split('/\s+/', $term); 

このように、あなたは試してみて、基本的には空の文字列でコードを実行しません。

+0

ヘクタールああ!私はこの素晴らしい情報を実現することはありませんでした! – arrowill12

1

phpだけを表示しているときにjsonエラーが発生する場所はわかりませんが、文字列の先頭と末尾の空白を削除するphpとjQueryの両方の機能があります。あなたのJavaScriptで

、残りの処理の前に、あなたができる:

my_string = $.trim(original_string); 

そして、あなたが行うことができますPHPのは:

$aWords = preg_split('/\s+/', trim($_GET['sSearch'])); 
// or use trim on the individual words of the result... 
関連する問題