如何设置javascript变量';将innerHTML转换为php/html文本
我以为我知道如何逃避,但这简直让我大吃一惊。我需要获取以下html/php组合文本:如何设置javascript变量';将innerHTML转换为php/html文本,php,javascript,html,escaping,innerhtml,Php,Javascript,Html,Escaping,Innerhtml,我以为我知道如何逃避,但这简直让我大吃一惊。我需要获取以下html/php组合文本: <select name="mainUsers" class="manageSelect"> <?php $users = getAllUsersByUserId($userid); echo'<option value="choose">Select a user...</option>'; while($user = mysql
<select name="mainUsers" class="manageSelect">
<?php
$users = getAllUsersByUserId($userid);
echo'<option value="choose">Select a user...</option>';
while($user = mysql_fetch_array($users)) {
echo'<option value='.$user['fname'].' '.$user['lname'].'>'.$user['fname'].' '.$user['lname'].'</option>';
}
?>
</select>;
;
并将其设置为javascript变量的innerHTML。它崩溃是因为我的转义语法不正确
编辑:很抱歉不清楚。这不起作用,我不知道为什么:
cell2.innerHTML =
<?php
echo '<select name="mainUsers" class="manageSelect">';
$families = getAllFamiliesByUserId($userid);
echo '<div id="famSelect"><option value="choose">Select a family...</option></div>';
while($family = mysql_fetch_array($families)) {
echo '<div id="famSelect"><option value="'.$family['name'].'">'.$family['name'].'</option></div>';
}
echo '</select>';
?>;
cell2.innerHTML=
;
您需要在echo和正在生成的字符串之间留一个空格
此外,您生成的HTML没有在选项的value属性周围加引号
试试这个:
echo'.$user['fname'].'.$user['lname'].'代码>您需要在echo和正在生成的字符串之间有一个空格
此外,您生成的HTML没有在选项的value属性周围加引号
试试这个:
echo'.$user['fname'].'.$user['lname'].'代码>您需要将innerHTML设置为包含HTML的字符串。在JavaScript中,需要用引号分隔该字符串,因此:
cell2.innerHTML =
<?php
echo '\'<select name="mainUsers" class="manageSelect">';
$families = getAllFamiliesByUserId($userid);
echo '<div id="famSelect"><option value="choose">Select a family...</option></div>';
while($family = mysql_fetch_array($families)) {
echo '<div id="famSelect"><option value="'.$family['name'].'">'.$family['name'].'</option></div>';
}
echo '</select>\';';
?>;
cell2.innerHTML=
;
您需要将innerHTML设置为包含HTML的字符串。在JavaScript中,需要用引号分隔该字符串,因此:
cell2.innerHTML =
<?php
echo '\'<select name="mainUsers" class="manageSelect">';
$families = getAllFamiliesByUserId($userid);
echo '<div id="famSelect"><option value="choose">Select a family...</option></div>';
while($family = mysql_fetch_array($families)) {
echo '<div id="famSelect"><option value="'.$family['name'].'">'.$family['name'].'</option></div>';
}
echo '</select>\';';
?>;
cell2.innerHTML=
;
您的报价有问题,它肯定会抛出一个javascript错误。现在,您有如下代码:
cell2.innerHTML = <select>...</select>
cell2.innerHTML=。。。
但应该是这样
cell2.innerHTML = '<select>...</select>'
cell2.innerHTML='…'
因此,在php标记周围加上单引号
cell2.innerHTML = '<?php
//...
?>';
cell2.innerHTML='';
这项工作没有任何转义,因为在html代码中不使用任何单引号。但转义很简单:只需将所有单引号替换为\'。像这样:
cell2.innerHTML文件
<?php
$html = '<select name="mainUsers" class="manageSelect">';
$families = getAllFamiliesByUserId($userid);
$html .= '<div id="famSelect"><option value="choose">Select a family...</option></div>';
while($family = mysql_fetch_array($families)) {
$html .= '<div id="famSelect"><option value="'.$family['name'].'">'.$family['name'].'</option></div>';
}
$html .= '</select>';
echo addslashes($html);
// Addslashes also slahses double quotes("). If this is causing problems try: echo str_replace("'", "\\'", $html);
?>';
您的引用有问题,它肯定会抛出一个javascript错误。现在,您有如下代码:
cell2.innerHTML = <select>...</select>
cell2.innerHTML=。。。
但应该是这样
cell2.innerHTML = '<select>...</select>'
cell2.innerHTML='…'
因此,在php标记周围加上单引号
cell2.innerHTML = '<?php
//...
?>';
cell2.innerHTML='';
这项工作没有任何转义,因为在html代码中不使用任何单引号。但转义很简单:只需将所有单引号替换为\'。像这样:
cell2.innerHTML文件
<?php
$html = '<select name="mainUsers" class="manageSelect">';
$families = getAllFamiliesByUserId($userid);
$html .= '<div id="famSelect"><option value="choose">Select a family...</option></div>';
while($family = mysql_fetch_array($families)) {
$html .= '<div id="famSelect"><option value="'.$family['name'].'">'.$family['name'].'</option></div>';
}
$html .= '</select>';
echo addslashes($html);
// Addslashes also slahses double quotes("). If this is causing problems try: echo str_replace("'", "\\'", $html);
?>';
选项标记中的值属性没有被引用当你说其崩溃时是什么意思
?选项标记中的值属性没有被引用当你说其崩溃时是什么意思?