2011-12-14 8 views
2

これは簡単な答えかもしれませんが、正しい構文を理解できません。私は機能を持って、私のJSページPHP文字列変数をJSにOnclickイベントから渡す方法

$ratelink = text string... 
echo '<div><span id="anything" onclick="updatePos('.$ratelink.')">Save</div>'; 

:私は、次のonclickイベントは、PHPページにエコー持っ

function updatePos(ratelink) 
{ 
    alert(ratelink); 
} 

私の問題は、$ ratelinkは数、変数の意志であるときということですパスしても問題ありません。しかし、上記の例のように$ ratelinkがテキスト文字列の場合、何も渡されず、警告は実行されません。

私は次の( '。$ ratelink。')は、テキストを渡すために別の構文にする必要があると思いますが、正確な形式はわかりません。

答えて

7

....スペースが$ ratelink変数に存在する場合、それは文字列で引用されなければならない'<div><span id="anything" onclick=updatePos("'.$ratelink.'")>Save</div>'; このエコーを試してみてくださいPHPのように:

$ratelink = 'text string...'; 
echo '<div><span id="anything" onclick="updatePos(\''.$ratelink.'\')">Save</div>'; 
+0

完璧に動作します!おかげでRyan – user175328

0

あなたにも、JS関数に渡すときに引用符で文字列を囲む必要があり

0

あなたの文字列は引用符でラップする必要があります...ので、あなたが作る必要があります、それ

echo '<div><span id="anything" onclick="updatePos(\''.$ratelink.'\')">Save</div>'; 

と文字列に引用符が含まれている場合は、その文字列もエスケープするようにしてください。

0

どちらの答えも正しくありません。少なくとも最善の選択肢ではありません。 json_encode()を使用して、PHPからJSへのデータを渡すことを検討してください。これにより、データが正しくエスケープされます。

var myObj = <?=json_encode(array('php' => 'array'))?>; 

console.log(myObj); 
関連する問題