2016-11-17 24 views
0

私は$ pathという名前の変数を持っています。この変数をPHPからjavascript関数に渡したいと思います。PHP変数をJavaScript関数に渡す

<button onclick='myFunctionContact(\"" . $row1['id'] . "\")'> 
    <img border='0' alt='Contacts' src='".$imgpth."peoplesmall.png'> 
</button> 
<script> 
function myFunctionContact(id) { 
    window.open('!!!$path should go here!!!'+id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 
</script> 

パス内のURLを目的の場所に表示するにはどうすればよいですか?

変数をjavascript変数に出力してその変数を関数に配置しようとしましたが、そのときにポップアップウィンドウが機能しなくなりました。

function myFunctionContact(id) { 
    var test1 = <?php echo $path; ?>; 
    window.open(test1 +id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 

私はそれが間違っていることを知っていますが、私はどのように考えていません。アドバイスをいただければ幸いです。

+1

印刷していますか?そのエコーの最後に? –

+0

これはタイプミスです。私はそれを修正するために編集します。 –

+0

[PHPからJavaScriptへ変数とデータを渡す方法は?](http://stackoverflow.com/questions/23740548/how-to-pass-variables-and-data-from-php-to-javascript) – giorgio

答えて

2

私は問題はあなたがパスエコーされているかだと思う:

の代わりに:

var test1 = <?php echo $path; ?> 

私はそれが

var test1 = <?php echo '"'.$path.'";'; ?> 
+0

var myValueで正常に動作する理由はありますか?<?php echo json_encode($ path); ?>; ? –

+1

json_encodeは、 "(二重引用符)文字を含む文字列を返します。コードには何もありません。 –

0

いつも非表示の入力フィールドを使用して、JSコードで使用する必要があるものに値を設定してからJS内のその値を取得するか、または必要な値を得るためにajax呼び出しを試すことができます。

+1

隠し入力フィールドを使用することは実際には悪いことです。それはしかし、動作します。 – giorgio

0

json_encode(あるべきだと思うが)問題を修正しました。

var myValue = <?php echo json_encode($path); ?>; 
+1

Jsonは、javascript変数に値をエンコードするためのものではありません。 – giorgio

0

パスは引用符付きの文字列である必要があります。エコーされた文字列の最終結果には、それ自体に引用符が含まれていなければなりません。

$pathが文字列であると仮定すると、window.openはパラメータとして引用された文字列を想定しています。

function myFunctionContact(id) { 
    window.open(' . $path . ' + id, '', 'toolbar=no,scrollbars=yes,resizable=yes,top=200,left=500,width=400,height=400'); 
} 
</script> 
関連する問題