2016-12-13 2 views
0

Как создать var javascript через php?Как создать var 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> 

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

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

+1

Прежде всего, создайте экземпляр переменной '$ bad_words' перед блоком' while' – Dragos

+0

Несомненно '$ resilt_row [word]' должен быть '$ resilt_row ['word' ] '? –

ответ

1
<?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(). Также в представлениях лучше использовать короткий синтаксис с <?= ?> тегом

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

Возможно, вы имели в виду: 'implode'? – Naruto

+0

Да, mean implode :) – JustOnUnderMillions

+0

Я получаю var bad_words = [""]; не var bad_words = ["fuck", "ass"]; ? –

0

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

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

Только для случая, когда вы получили ответ. Эта часть не одобрена '', ''она должна быть'' "," '' – JustOnUnderMillions

+0

Да, вы правы. Благодарю. –

0

строка, которую вы» Реформирование - это не тот, который вы хотите.
Вы не добавляете котировки.

Сделайте это вместо того, чтобы, используя массив лучше:

$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]. "'"; 
} 

И затем, вниз в ваших ЯШ:

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

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

var bad_words = ["<?= implode(",", $bad_words) ?>"]; 
+0

Я получаю 'var bad_words = [" fuck, ass "];' not 'var bad_words = [" fuck "," ass "];'? –

+0

Странно, вы должны были получить 'var bad_words = ['first', 'second']' – Phiter

Смежные вопросы