2016-08-02 5 views
0

私は以下のJQuery関数を持っています。JQueryでPHPループを使う方法

<script> 

    var forbiddenWords = ['Phone', 'Home', 'Address', 'Number', 'Postcode', 'email', 'call','n u m b e r']; 
    $(function() { 
     $('.msgbox').on('keyup', function(e) { 
     forbiddenWords.forEach(function(val, index) { 
      if (e.target.value.toUpperCase().indexOf(val.toUpperCase()) >= 0) { 
       e.target.value = e.target.value.replace(new RegExp("(" + val + ")" , 'gi'), ''); 
      } 
     }); 
     }); 
    }); 

    </script> 

私はfordiddenWords配列の単語を動的にする必要がありますし、MySQLデータベースから来る必要があります。私は次のコードを書いたが、それは動作していない..!

 <script> 

var forbiddenWords = [<?php foreach($result as $res) { echo $res->rest_words; } ?>]; 
     $(function() { 
      $('.msgbox').on('keyup', function(e) { 
      forbiddenWords.forEach(function(val, index) { 
       if (e.target.value.toUpperCase().indexOf(val.toUpperCase()) >= 0) { 
        e.target.value = e.target.value.replace(new RegExp("(" + val + ")" , 'gi'), ''); 
       } 
      }); 
      }); 
     }); 

     </script> 

var forbiddenWords = [phonenumberaddress];

お願いします。

+0

エラー – scrappedcola

+0

のためにあなたのコンソールをチェックしますが、この変数forbiddenWordsをCONSOLE.LOGことができますか? – MouradK

+0

$ res-> rest_wordsは単語の配列ですか?または単一の文字列ですか? – Mickey

答えて

0

カンマと引用符が欠落している:JavaScriptで直接このようにエコー

<script> 

var forbiddenWordsString = <?php foreach($result as $res) { echo "'" . $res->rest_words . "',"; } ?>; 
var forbiddenWords = [forbiddenWords.substring(0, str.length - 1)]; // remove last comma 
    $(function() { 
     $('.msgbox').on('keyup', function(e) { 
     forbiddenWords.forEach(function(val, index) { 
      if (e.target.value.toUpperCase().indexOf(val.toUpperCase()) >= 0) { 
       e.target.value = e.target.value.replace(new RegExp("(" + val + ")" , 'gi'), ''); 
      } 
     }); 
     }); 
    }); 

</script> 
+0

構文エラー:末尾のカンマ最後の配列要素の後 – NDM

+0

私は自分の答えを更新しました。 – Manolo

0

は、情報を渡すための正しい方法ではありません。 $ result配列をjsonに変換すると、jsのネイティブなので、より簡単になります。試してみてください:

http://php.net/manual/en/function.json-encode.php

だから、それは次のようになります。

var forbiddenWords = <?=json_encode($result)?>; 
+0

オブジェクトの配列を生成します。 '$ result'は最初に期待される出力構造体にマップされる必要があります – charlietfl

+0

var forbiddenWords = [{" rest_word ":" phone "}、{" rest_word ":" number "}、{" rest_word ":" address "}]; –

+0

それはこのような出力を与えます。 –

1

あなたは単に

var forbiddenWords = [<?php foreach($result as $res) { echo $res->rest_words; } ?>]; 

JSON/JavaScriptオブジェクトまたは配列に変換するPHPの配列のためのjson_encode関数を使用することができます

<?php 
$arr=array(); 
foreach($result as $res) { $arr[]=$res->rest_words; } 
?> 
var forbiddenWords = <?php echo json_encode($arr); ?>; 
と交換してください

OR

var forbiddenWords = <?php echo json_encode(array_map(function($record){ return $record->rest_words; }, $result)); ?>; 
+0

にマッピングされる必要があります。コードで構文エラーが発生します。 –

+0

私はそれにいくつかのバグを修正しました – NDM

+0

あなたは私にエラーを表示できますか? –

関連する問題