PHP / jquery字符串导致JS错误

时间:2011-08-08 01:51:55

标签: php jquery

这个字符串有一个php echo。我一定搞砸了,因为它似乎导致了JS错误。我已经尝试了一切我能想到的工作。如果我把PHP字符串取出一切正常。如果我选择PHP并将其放在有效的jquery字符串之外。我想我只需要一些帮助结合PHP字符串和JS。 (忽略字符串间距我只是这样做,以便更容易阅读)

感谢您的帮助。

$("#billTasks").find('tr').append('
<td>
<select class="billOptions">
        <option class="fixedRate" onclick="fixedOption(this)">Bill Fixed Rate</option>
        <option class="hourly"  onclick="hourlyOption(this)">Bill Hourly</option>
</select> 
        <input type="text" name="fixedRate" placeholder="Rate" class="fieldWidth100 rate"/>
<select>
<?php while($row = $db->sql_fetchrow($result)){echo "<option value=\'.$row[schedule].\'> $row[schedule] </option>\n";}?>
</select>
</td>');

5 个答案:

答案 0 :(得分:1)

这是我使用的

PHP代码:

$name = addslashes($name);
$options .= "<option value=\"$id\">$name</option>\\"."\n";

JAVASCRIPT:

var options = '<?php echo $options; ?>';

答案 1 :(得分:0)

问题出在"<option value=\'.$row[schedule].\'>...

当你逃避单引号时,你只是在PHP中这样做。输出时,它们仍然是单引号,因此导致JS错误。尝试对选项值使用双引号并转义它们。

<?php while($row = $db->sql_fetchrow($result)){echo "<option value=\"$row[schedule]\"> $row[schedule] </option>\n";}?>

答案 2 :(得分:0)

你有额外的斜杠。

<option value=\'.$row[schedule].\'>
              ^                 ^
              |-----------------|---------- You don't need these

我不知道这是否是问题的原因,但绝对不需要;你是用双引号"开始你的字符串。

答案 3 :(得分:0)

这一行有几个问题:

echo "<option value=\'.$row[schedule].\'> $row[schedule] </option>\n";

第一个是.'你没有使用字符串连接,所以你不需要在你的变量周围加点。由于它是一个复杂的变量,因此您的代码更像{$row[schedule]}

其次,您需要在字符串schedule周围加上引号,否则PHP会在发出警告并将其用作字符串之前搜索具有该名称的常量。所以这条线最终看起来像:

echo "<option value=\'{$row['schedule']}\'>{$row['schedule']}</option>\n";

Javascript也不喜欢字符串中的换行符,除非是用文字\n写的。这意味着您应该将\n更改为\\n,以便php输出\n而不是实际的换行符:

echo "<option value=\'{$row['schedule']}\'>{$row['schedule']}</option>\\n";

或者使用PHP单引号并执行:

echo '<option value="'.$row['schedule'].'">'.$row['schedule'].'</option>\n'; 

答案 4 :(得分:-1)

您的PHP代码无效。看看:

echo "<option value=\'.$row[schedule].\'> $row[schedule] </option>\n";

您正在尝试使用点运算符连接字符串,但您的字符串未终止(带双引号的字符串的开头,没有结束)。您可以看到stackoverflow的代码突出显示不起作用。

改为使用:

echo "<option value='" . $row[schedule] . "'>" . $row[schedule] . "</option>\n";

或者:

echo "<option value='", $row[schedule], "'>", $row[schedule], "</option>\n";