Hi, In my PHP program i am accepting input from users. I am passing it to javascript function for further process. My function didn work if input string contains quote character. For example <? php $myvar = "Hello's"; echo '<FORM NAME="myform" ACTION="" METHOD="GET"> Enter something in the box: <BR> <INPUT TYPE="text" NAME="inputbox" VALUE=""><P>'; echo "<INPUT TYPE=\"button\" NAME=\"button1\" Value=\"Read\" onClick=\"javascript:readText(this.form, \"$myvar\")\">"; //<INPUT TYPE="button" NAME="button2" Value="Write" onClick="javascript:writeText(this.form)"> echo '</FORM>'; ?> Code (markup): and javascript is as below: function readText (form, data) { TestVar =form.inputbox.value; alert ("You typed: " + TestVar + "... and ..." + data); } Code (markup): However this is not working because of quote character in $myvar. Any idea to overcome this ??? Quick solution will be appreciated... Thx in advance!!
First, I suggest that you look into using a templating language like Smarty to keep your PHP out of your HTML. Keep the two separate if at all possible. Not only that, but Smarty allows you to do some really awesome things. That being said, try this: <html> <head> <script language="javascript"> function readText (form, data) { TestVar =form.inputbox.value; alert ("You typed: " + TestVar + "... and ..." + data); } </script> </head> <?php $myvar = "Hello\'s"; echo '<FORM NAME="myform" ACTION="" METHOD="GET"> Enter something in the box: <BR> <INPUT TYPE="text" NAME="inputbox" VALUE=""><P>'; echo "<INPUT TYPE='button' NAME='button1' Value='Read' onClick=\"readText(this.form, '$myvar')\"/>"; //<INPUT TYPE="button" NAME="button2" Value="Write" onClick="javascript:writeText(this.form)"> echo '</FORM>'; ?> </html> Code (markup):
Try the PHP function addslashes() http://ca3.php.net/addslashes It will add backslashes to cancel out single and double quotes. ie: $var = "Who's there"; $var = addslahes($var); echo $var will output: Who\'s there