2012-03-19 10 views
2

私はMySqlデータベースに接続し、特定のテーブルから最後のエントリを読み込むphpファイルを持っています。私がやろうとしているのは、JavaScriptのポップアップボックスを使ってテーブルの最後のエントリを外部のhtmlファイルに表示することです。 以下は、PHPファイル(これは正常に動作しています)とhtmlファイルのコードです残念ながら私はPHP変数をJavaScript関数に渡す方法を理解できません。JavaScriptのポップアップボックスにphp変数を表示

事前に感謝します。

PHPファイルはこの1つのようになります。

<?php 

    // 1. Create a database connection 
    $connection = mysql_connect("localhost","root","password"); 
    if (!$connection) { 
     die("Database connection failed: " . mysql_error()); 
    } 

    // 2. Select database to use 
    $db_select = mysql_select_db("manage_projects",$connection); 
    if (!$db_select) { 
     die("Database selection failed: " . mysql_error()); 
    } 

    // 3. Perform database query 
    $result = mysql_query("SELECT survey_desc FROM subjects ORDER BY id DESC LIMIT 0,1", $connection); 
    if (!$result) { 
     die("Database query failed: " . mysql_error()); 
    } 

    // 4. Use returned data 
    while ($row = mysql_fetch_array($result)) { 
     echo $row["survey_desc"]."<br />"; 
    } 

    // 4.1 Alternative way to use returned data 
    /* $row = mysql_fetch_array($result); 
    echo $row["survey_desc"]."<br />"; 
    */ 

    // 5. Close connection 
    mysql_close($connection); 
?> 

htmlファイル:

<html> 
<head> 
<script type="text/javascript src="myscript.php""> 

    //if clicked Yes open new page if Cancel stay on the page 
    function popup(){ 
    var r=confirm("echo the php query here"); 
     if (r==true) 
      { 
      window.location = "http://example.com"; 
      }  
} 
</script> 
</head> 
<body onload ="popup()"> 

</body> 
</html> 

答えて

0
<head> 
<script type="text/javascript"> 
function popup(){ 
    var xhr=null; 

    if (window.XMLHttpRequest) { 
     xhr = new XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject) { 
     xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xhr.onreadystatechange = function() { 
     if(xhr.readyState == 4){ alert_ajax(xhr); } 
    } 
    xhr.open("GET", "myscript.php", true); 
    xhr.send(null); 
} 
function alert_ajax(xhr){ 
    var docAjax= xhr.responseText; 
    r=confirm(docAjax); 

     if (r==true) 
      { 
       window.location = "http://example.com"; 
      } 
} 
</script> 
</head> 
+0

こんにちは、グラフ、お返事ありがとうございます - 私はあなたのコードを試して、私は唯一の問題は、 "はい"ボタンを2回クリックしなければならないポップアップを取得し、次に表示される変数を得る... – Daniel

+0

@ダニエルは参照してください更新されたスクリプト – mgraph

+0

ありがとうございます。今実際に働いています。以前のコードから消えた唯一の機能は、[OK]ボタンをクリックすると、ユーザーに送信するページにリダイレクトされません。以前のコードでは、[OK]ボタンをクリックすると、ユーザーは新しいページ "window.location =" http://example.com ";にリダイレクトされました。私がそれをどのように実装できるかについての提案がありますか?どうもありがとう。 – Daniel

4

あなたのJavaScriptにエコーすることができます

var r=confirm("<?php echo $relevant_variable; ?>"); 

また、金型を使用することをお勧めしません()を使用します。

+0

なぜdie()は推奨されないのですか? –

+0

基本的に問題がある場合、エラーはあなたのウェブサイトを殺して、すべての人に見えるようにします。これはセキュリティ上の問題です。エラー報告には、trigger_error()またはカスタム関数を使用する必要があります。 – Ynhockey

+0

こんにちはYnhockey、あなたのお返事ありがとうございます - 私はここに私の質問を投稿する前に言ったことを試したが、それは動作しません。私がポップアップに入るのは<?php echo $ relevant_variable;?>です。 – Daniel

0
<?php 
    // Your php code; 
    $myVar="your value that you want to pass to js"; 
?> 
<html> 

    <head> 
    <script> 
     //if clicked Yes open new page if Cancel stay on the page 
     function popup(){ 
     var mvar = '<?php echo $myVar ;?>'; 
     var r=confirm(mvar); 
     if (r==true) 
     { 
      window.location = "http://example.com"; 
     }  
    } 
    </script> 
</head> 
    <body onload ="popup()"> 

    </body> 
</html> 

ちょうど1つのphpファイルで両方のファイルを組み合わせてください。

+0

こんにちはシェイクさん、お返事ありがとうございます - 残念ながら、私はそれらのファイルをセパレートしておく必要がありますが、両方のファイルを組み合わせておく必要があります。 – Daniel

+0

上記と同じです:変数はエスケープされませんこのスクリプトは、引用符( '' ')または改行(' \ n')が含まれているとクラッシュします値。 – jwueller

0

使用PHPのjson_encode()-function

var r = confirm(<?php echo json_encode("the php query here"); ?>); 

それはあなたのためのエスケープとJSONはJavaScriptの構文のサブセットであるため、常に、有効なJavaScriptを生成します。

関連する問題