javascript函数中的PHP字符串格式化


php string formating in javascript function

请帮我解决这个字符串格式化问题。运行时显示错误。

我需要调用一个java脚本函数AddHotel()与一些php变量从输入标签。在运行函数中的第一个参数时显示错误。它应该像onClick='AddHotel('divid', 'some_id', 'id',ids,rate)'

但在运行时显示为onClick='AddHotel(divid', 'some_id', 'id',ids,rate)'

$resort[] = "<div id='".$iiiddd."'><input id='hotel_day".$child_post->ID.$dyid."' name='hotel_day".$dyid."' type='radio' value='".$child_post->ID."' onclick='AddHotel(".$p.",'".$s."','".$psid."','".$dyid."','".$child_post->ID."',".$child_post->fields['price'].")' />
<input id='".$s."' name='expsel".$dyid."[]' type='hidden' value='' />".$child_post->post_title."<span>Rs:- ".$child_post->fields['price']."</span></div>";

要转义引号

$resort[] = "<div id='".$iiiddd."'><input id='hotel_day".$child_post->ID.$dyid."' name='hotel_day".$dyid."' type='radio' value='".$child_post->ID."' onclick='AddHotel(".$p.",''".$s."'',''".$psid."'',''".$dyid."'',''".$child_post->ID."'',".$child_post->fields['price'].")' />".$child_post->post_title."Rs:- ".$child_post->fields['price']."";

为所有人面临这样的问题:

你应该总是使用双引号表示HTML属性值例如:

<div attribute="value"><div>

为了在Javascript函数中传递变量,必须对string使用引号(最好是单引号)。如:

somethingAwesome('work', 'life', 1);

在PHP中嵌入HTML和Javascript时,一定不要把引号搞混了。

PHP字符串+ HTML元素:

$string = '<div></div>';

PHP字符串+带有属性的HTML元素:

$string = '<div id="awesome"></div>';

PHP字符串+带有属性的HTML元素+ Javascript函数:

$string = '<div id="awesome" onclick="somethingAwesome()"></div>';

PHP字符串+带属性的HTML元素+带参数的Javascript函数:

$string = '<div id="awesome" onclick="somethingAwesome('''.$string.''', '''.$string2.''', '.$integer.');"></div>';

您可以选择双引号或单引号,但遵循一种特定的方式将防止您混淆。

还记得缩进你的代码,即使在HTML字符串

的情况下

您的问题解决方案:

$resort[] = '<div id="'.$iiiddd.'">
                <input id="hotel_day'.$child_post->ID.$dyid.'" name="hotel_day'.$dyid.'" type="radio" value="'.$child_post->ID.'" onclick="AddHotel('''.$p.''', '''.$s.''', '.$psid.', '''.$dyid.''', '.$child_post->ID.', '''.$child_post->fields['price'].''')" />
                <input id="'.$s.'" name="expsel'.$dyid.'[]" type="hidden" value="" />
                '.$child_post->post_title.'
                <span>Rs:- '.$child_post->fields['price'].'</span>
            </div>';