2017-02-02 4 views
0

私はPHPでonclickメソッドを呼び出していますが、その中のスペースを持つすべての文字列は失敗するようです。Javascriptの文字列スペースでのパラメータの動作がありません

PHP(MySQLのループ)

echo '<img onclick=test("'.$row['name'].'","name'.$row['id'].'") src="blabla.png"/>'; 

javascriptの

function test(vali, id){ 

    alert(vali); //Maria, Josef (but not "Michael Jackson") 
    alert(id); //name23, name28 
} 

私はスペースなしでその文字列の場合は、alertメソッドが呼び出されると、テキストを示し、しかし少なくとも一つとなっている言ったようにスペースは何も起こらない。

+0

エコー以下のようにそれを使用することができます''; ? – DevNiels

+0

@DevNiels probは主に名前 '$ row [' id ']。 1つの値ですので、他のjavascriptに入れておかなければなりません。例えば、 "name12"のようなIDは、 –

答えて

1

あなたの全体のonclickハンドラを引用符で囲む必要があります。その中で引用符をHTMLエスケープする必要があります。 HTMLで

echo '<img onclick="test(&quot;'.$row['name'].'&quot;,&quot;name'.$row['id'].'&quot;)" src="blabla.png"/>'; 

これは、その後

<img onclick="test(&quot;A Name With Spaces&quot;,&quot;name1&quot;)" src="blabla.png"/> 

として表示されますとJavaScript一部が最終的に

test("A Name With Spaces","name1") 
+0

ur genius ty :) –

+0

です。どうすればjavascriptでこれをやりますか? '.innerHTML =" ";私が一重引用符を"e;に置き換えた場合、それは私にとってはうまくいかないようです:/ –

+0

Javascriptでは、バックスラッシュを使用して引用します:' \ "'しかし、まだonclickをラップしていません本当にinnerHTMLを避けるべきです。var img = new Image(); img.addEventListener( 'click'、someFunction); someElement.appendChild(img) ' – SpliFF

0

にデコードされたあなたは

<img onclick='test("<?php echo $row['name']; ?>",name="<?php echo $row['id']; ?>")' src="blabla.png"/> 
関連する問題