Düzgün javascript içinde tırnak kullanımı nasıl

3 Cevap php

Ben böyle JavaScript biraz kullanıyorum:

echo '<a href="javascript:playSong'."('$row[artist]','$row[title]','$row[sourcefile]')".'">';

Benim sorunum bazen $row[artist] ve $row[title] değişkenleri çift qoutes içermesidir.

Bu durumda o javascript:playSong(); işlev çağrısı kırar.

Örneğin çizgi bu gibi çıktı ise:

<a href="javascript:playSong('Danny Elfman','Beetlejuice Theme (Kamei Halloween Edit)','2009-10-31-10-52-01.4521.data','28330')">

Her şey iyi olurdu.

Ama bazen işlevi bu gibi görünecektir:

<a href="javascript:playSong('Danny Elfman','Beetlejuice "Theme" (Kamei Halloween Edit)','2009-10-31-10-52-01.4521.data','28330')">

Sonra benim site komutu "Tema" önce çift tırnak biter düşünmek neden ve böylece başarısız olmasına neden olur Hangi.

Metin ve hiçbir işlev sonu olarak işlev içinde çift tırnak davranır yüzden düzgün benim javascript alıntı gereken bir yolu var mı.

I addslashes() kullanıyorum ve diğer çeşitli kodlamaları denedim ama böyle bir şey iş gibi görünüyor.

3 Cevap

Burada iyi çözüm href="javascript:… kullanarak durdurmak ve unobtrusive JavaScript ve progressive enhancement kullanmaya başlamaktır.

Bu rota aşağı devam etmek istiyorum yoksa, o zaman three, farklı diller ile uğraşan ve bir zincirindeki diğer birini üreten olduğunu hatırlamamız gerekiyor.

JavaScript ile başlayın. Sonra HTML ile iş yapmak. Sonra PHP ile iş yapmak.

javascript:playSong('Danny Elfman','Beetlejuice "Theme" (Kamei Halloween Edit)','2009-10-31-10-52-01.4521.data','28330')

Hiçbir sözdizimi hataları var burada. Sadece bir dize çift tırnak var.

href="javascript:playSong('Danny Elfman','Beetlejuice "Theme" (Kamei Halloween Edit)','2009-10-31-10-52-01.4521.data','28330')"

Şimdi HAVA çift tırnak ile sınırlanan bir HTML niteliğine de JavaScript iç içe. Bu komut dosyası aracılığıyla öznitelik değeri yarım sonlandırır olarak JS çift tırnak artık bir sorun vardır demektir.

HTML için olağan şekilde bu tırnak ile uğraşmak. Bir HTML varlık onları değiştirin: &quot;

href="javascript:playSong('Danny Elfman','Beetlejuice &quot;Theme&quot; (Kamei Halloween Edit)','2009-10-31-10-52-01.4521.data','28330')"

Sonra PHP olsun:

echo '<a href="javascript:playSong'."('$row[artist]','$row[title]','$row[sourcefile]')".'">';

Tırnak içinde tırnak içinde tırnak ile ilgili bir ağrıdır. Yani çalışmayın.

href="javascript:playSong('<?php echo $row[artist] ?>','<?php echo $row[title] ?>','<?php echo $row[sourcefile]; ?>')"

Orada örnekler arasında bir argüman kaybetmiş görünüyor.

Htmlspecialchars'ın: PHP ile HTML takmadan içeriği ile başa çıkmak için normal kurallarına uyun

href="javascript:playSong('<?php echo htmlspecialchars($row[artist]); ?>','<?php echo htmlspecialchars($row[title]); ?>','<?php echo htmlspecialchars($row[sourcefile]); ?>')"

Ayrıca html onları kaçmak gerekir çünkü ONLY ters eğik çizgi ile kaçan size yardımcı olmayacaktır, içinde &#39;, tek tırnak ve &#34;, çift tırnak kullanmayı deneyin sizin gömülü js fonksiyonları.

Bu ne ihtiyaç yapmalıyım.

Sinan.

Edit: Oh. Html bunu kaçmak gerekir. Try htmlspecialchars: