tags:

views:

40

answers:

3

how can I write more embedded " and ' in php ? For example, I dunno how to write this html complete element with all apex:

As you can see, I use '' for the php string. Then inside, I use "", but then I need another level of apix and I dunno how to write that one in my php document. (php thinks that the string is complete in the middle because it sees another ' before the end.

$output .= '<img style="outline:none;" src="sites/default/unselect.png" alt="Unselect All" onclick='$(this).siblings('.form-item').each(function(index){ $('input:checkbox', this).attr('checked', ''); });'/>';

how can I solve this ?

thanks

A: 
$output .= '<img style="outline:none;" src="sites/default/unselect.png" alt="Unselect All" onclick="$(this).siblings(\'.form-item\').each(function(index){ $(\'input:checkbox\', this).attr(\'checked\', \'\'); });"/>';

Your onclick itself also had the wrong quote

Matthew Flaschen
A: 

please, use the "\" before quote

dark
A: 

there are many ways to solve that. Listed from best to worst

1) Use a templating engine and keep your php and your html separate. Also, use non-obtrusive javascript and avoid javascript code in html tags

2) When outputting complex html, escape from php mode and print strings as is.

function foo() { ?>
       some complex html
<?php 
    php continues here
 } // foo

3) Use heredoc syntax to avoid quoting issues

$output .= <<<TEXT
   <img style="outline:none;" src="sites/default/unselect.png" alt="Unselect All" onclick='$(this).siblings('.form-item').each(function(index){ $('input:checkbox', this).attr('checked', ''); });'/>
TEXT;

4) Escape quotes as others said

stereofrog