我有这个我想用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变量。
任何人都可以帮忙吗?
答案 0 :(得分:2)
你也可以通过交换单身双打来阻止单引号和双引号,例如:
$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+']">');
答案 1 :(得分:1)
转义字符串内的'
分隔符。
答案 2 :(得分:1)
在输出时退出'使用\'和“使用\”字符
答案 3 :(得分:1)
试
$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+\"']');
");
答案 4 :(得分:1)
$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字符串。因此,你必须逃脱双重问题:'<input type=\"text\"...>'
。
但严重,这是一团糟。尝试直接在HTML模板中编写Javascript,它会为你节省很多麻烦。
答案 5 :(得分:1)