如何在JQuery中使用PHP循环

时间:2016-08-02 13:17:19

标签: php jquery codeigniter

我有以下JQuery函数。

     <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>

我希望fordiddenWords数组中的单词应该是动态的,必须来自MySQL数据库。我写了下面的代码,但它不起作用..!

<h1> MY TEXT. orem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. </h1>
<div class="one"> </div>
<div class="two"> </div>

单词看起来像这样..!

  

var forbiddenWords = [phonenumberaddress];

请帮助。

3 个答案:

答案 0 :(得分:1)

你可以简单地使用json_encode函数将php数组转换为JSON / Javascript对象或数组

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

将其替换为

<?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)); ?>;

答案 1 :(得分:0)

您错过了逗号和引号:

 <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>

答案 2 :(得分:0)

直接在Javascript中这样回传并不是传递信息的正确方法。如果将$ result数组转换为json会更容易,因此它更适合js。试试:

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

所以看起来应该是这样的:

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