[英]Outputting jQuery in PHP, quotes issue
我有這個我想在PHP中輸出:
$this->Js->buffer("
var searchTerm = $(this).html();
var searchId = $(this).attr('data-tag');
$('.tags').append('<input type='text' value='+searchTerm+' name='data[Tag][tags]['+searchId+']'');
");
但是我也不確定引號和javascript變量。
有人可以幫忙嗎?
您也可以通過將單打換為雙打來阻止單引號和雙引號,例如:
$this->Js->buffer("
var searchTerm = $(this).html();
var searchId = $(this).attr('data-tag');
$('.tags').append('<input type=\"text\" value='+searchTerm+' name=\"data[Tag][tags]['+searchId+']\">');
");
將輸出:
var searchTerm = $(this).html();
var searchId = $(this).attr('data-tag');
$('.tags').append('<input type="text" value='+searchTerm+' name="data[Tag][tags]['+searchId+']">');
在字符串中轉義'
分隔符。
輸出時轉義'using \\'和“ using \\”字符
嘗試
$this->Js->buffer("
var searchTerm = $(this).html();
var searchId = $(this).attr('data-tag');
$('.tags').append('<input type='text' value='\"+searchTerm+\"' name='data[Tag][tags]['\"+searchId+\"']');
");
$this->Js->buffer("
var searchTerm = $(this).html();
var searchId = $(this).attr('data-tag');
$('.tags').append('<input type='text' value='+searchTerm+' name='data[Tag][tags]['+searchId+']'');
");
那就是你的代碼。 在PHP ""
您必須編寫單引號'
或轉義雙引號\\"
。已選擇使用單引號,這很好,除了生成的JS代碼也必須遵循這些規則。
$('.tags').append('<input type='text' value='+searchTerm+' name='data[Tag][tags]['+searchId+']'');
這里的問題是'<input type='text'...>
。 首先,你錯過了>
;-)其次,你必須使用"
或\\'
來包裝text
。 '<input type="text"...>'
是可以的,但是這將與PHP相沖突,因為"
使用用於PHP字符串。 因此,您必須轉義兩個qoutes: '<input type=\\"text\\"...>'
。
但是說真的 ,這是一團糟。 嘗試直接在HTML模板中編寫Javascript,這樣可以節省很多頭痛。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.