Как создать вар javascript через php?

<?PHP
include("connect.php");
$get_data = mysqli_query($db_mysqli,"SELECT * FROM bad_word");
while($resilt_row = mysqli_fetch_array($get_data))
{ 
    $bad_words = $bad_words."".$resilt_row [word].",";
}
//echo $bad_words;
?>

<script>
var bad_words = ["<?PHP echo $bad_words; ?>"];
alert(bad_words);
</script>

Я хочу получить var javascript вроде этого var bad_words = ["fuck", "ass"]; Когда предупреждение, он получает только пустой результат.

Как я могу это сделать ?

0
weduti sepoyuei 13 Дек 2016 в 18:40

4 ответа

Лучший ответ
<?php

include("connect.php");
$query = mysqli_query($db_mysqli,"SELECT * FROM bad_word");
$badWords = [];

while($row = mysqli_fetch_array($query))
{ 
    $badWords[] = $row['word'];
}

JS

<script>
var bad_words = <?= json_encode($badWords); ?>;
alert(bad_words[0]);
console.log(bad_words);
</script>

Мне не нравится склеивать строки, если это массив, а затем передавать его как массив с помощью функции json_encode (). Также в представлениях лучше использовать короткий синтаксис с тегом <?= ?>

1
Robert 13 Дек 2016 в 15:48

Строка, которую вы делаете, не та, которую вы хотите.
Вы не добавляете кавычки.

Вместо этого лучше использовать массив:

$get_data = mysqli_query($db_mysqli,"SELECT * FROM bad_word");
$bad_words = array();
while($resilt_row = mysqli_fetch_array($get_data))
{ 
    $bad_words[] = "'" . $resilt_row[word]. "'";
}

А потом, в вашей JS:

var bad_words = ["<?php echo implode(",", $bad_words) ?>"];

Или (для краткости)

var bad_words = ["<?= implode(",", $bad_words) ?>"];
0
Phiter 13 Дек 2016 в 15:46

Если вы хотите предупредить их как строку, вы можете сделать это следующим образом:

<script>
    var bad_words = ["<?php echo implode('","',$bad_words); ?>"];
    alert(bad_words);
</script>

В противном случае вы можете распечатать их как массив:

<script>
    var bad_words = <?php echo json_encode($bad_words) ?>;
    console.log(bad_words);
</script>
0
Ruslan Nigmatulin 13 Дек 2016 в 16:00
<?PHP
include("connect.php");
$get_data = mysqli_query($db_mysqli,"SELECT * FROM bad_word");
while($resilt_row = mysqli_fetch_array($get_data))
{ 
 $bad_words[] = $resilt_row['word'];
}
//echo $bad_words;
?>

<script>
var bad_words = ["<?php print implode('","',$bad_words); ?>"];
alert(bad_words);
</script>
0
JustOnUnderMillions 13 Дек 2016 в 16:11