2012-03-11 13 views
0

JavaScriptコードをPHPコードに組み込む可能性を探しています。phpへのjavascriptコードの挿入

コードは、検索PHPファイルから結果を取得し、Javascriptプレイリストの形式で出力する必要があります。

これはjavascriptのコードです:私は完全なJavaScript関数を含めたくないことに注意してください

<?php 
    if (!empty($_POST['search'])) { 

    /* Connect to database */ 
    $hostname = ''; 
    $database = ''; 
    $username = ''; 
    $password = ''; 
    if (!($mysql_link = mysql_connect($hostname, $username, $password))) { 
    die('Could not connect'); 
    } 

    /* Select databse */ 
    if (!($db_selected = mysql_select_db($database, $mysql_link))) { 
     die('Could not find database'); 
    } 

    /* Send mysql command */ 
    $sql_cmd = "SELECT * FROM sounds WHERE `keywords` LIKE '" 
    . $_POST['search']."%'"; 
    if (!($res = mysql_query($sql_cmd))) { 
     die('Invalid MySQL query'); 
    } 

    /* Show results */ 
    while ($dsatz = mysql_fetch_assoc($res)) { 

    $upload = $dsatz["upload"]; 
    $title = $dsatz["title"]; 
    $artist = $dsatz["artist"]; 
    $subcategory = $dsatz["subcategory"]; 
    $date = $dsatz["date"]; 
    $rating = $dsatz["rating"]; 

    /* Here should be the Javascript code */ 

    } 

    /* Close database connection */ 
    mysql_close($mysql_link); 
    } 
?> 

<script type="text/javascript"> 
$(document).ready(function(){ 

var description = ''; 
var myPlaylist = [ { 

    mp3:'./../sounds/mysql-upload', 
    title:'mysql-title', 
    artist:'mysql-artist', 
    subcategory:'mysql-subcategory', 
    date:'mysql-date', 
    rating:'mysql-rating', 
    }, 

    /* var myPlaylist has to repeat */ 

]; 

$('#main').ttwMusicPlayer(myPlaylist, { 
autoPlay:false, 
description:description, } 
); 

}); 
</script> 

そしてここでPHPのコードです結果はPHPコードの部分ですが、繰り返す必要のあるプレイリスト変数です。

+0

SQLインジェクションに注意してください。あなたの '' SELECT * FROMはどこのキーワード '' LIKE '"と発音します。 $ _POST ['search']。 "% '" 'が開いています。 'mysql_real_escape_string()'を見てください。 –

+0

これはループなので、毎回変数が異なる値を取得するので、js関数を呼び出すことを意味していますか? –

+0

いいえ音楽プレーヤーでデータベースの結果を埋め込むためにjs関数が必要です。 –

答えて

2

でjQueryのAJAX APIに一目を取る、あなたは配列を作成し、それらの属性の配列とそれを埋めることができます。以下のような 何か:

var myPlaylist = <?php echo $printout; ?>; 
+0

しかし、この解決法は2つ以上の結果に対しては機能しません。本当に唯一の可能性はありますか? –

+1

です。あなたが気づいたならば、$ resultsは配列の配列で、その中の各配列はDBの「行」です。 JSONに変換すると、PHPと同じ配列の配列に変換されます。それを試してみてください。 – DanRedux

+0

あなたはしません。 json_encodesは、配列の$ results配列を文字列に変換します。この文字列は、JavaScriptが読み取って配列の配列に変換できます。 – DanRedux

0

これはかなり可能ですが、どのように代わりにJSONを使用してABT:JavaScriptの中にそれを置くために

$results = array(); 
while ($dsatz = mysql_fetch_assoc($res)) { 
    $results[]=$dsatz; } 
$printout = json_encode($results); 

、あなたはこれを行うだろう。 JSONエンコードされた文字列はPHPでjson_encode($array)経由で生成できます。おそらくAJAXを使用してjsonを現在のページに読み込むことができます。

もう1つのオプションは、PHPコードからJavaScript配列を生成し、Webページにjavascript配列を含めることです。

関連する問題