Passing PHP variable to javascript function with quotes
===

I need to pass these values to a javascript function in the head. The problem is when pulling from the DB some are more than one word, and using a href it cuts it off at a space when passing using javascript:function(vars), and I can't get onclick to work at all. I've tried all sorts of combinations of quotes and brackets around the variables ("",'',/", and {) as well as putting quotes around the ones I know will have more than one word before passing (see below). Here is the PHP:

    <?php
                    require('config/dbconfig.php');
                    $query = "SELECT * FROM news ORDER BY id DESC LIMIT 4";
                    if ($stmt = $mysqli->prepare($query)) {
                        /* execute statement */
                        $stmt->execute();

                        /* bind result variables */
                        $stmt->bind_result($idn, $titlen, $categoryn, $descn, $postdaten, $authorn);

                        /* fetch values */
                        while ($stmt->fetch()) {
                            //echo 'id: '. $id .' title: '. $title;
                            echo "<table border='0'>";
                            $shortDescLengthn = strlen($descn);
                            if ($shortDescLengthn > 106) {
                                $sDCutn = 106 - $shortDescLengthn;
                                $shortDescn = substr($descn, 0, $sDCutn);
                            } else {
                                $shortDescn = $descn;
                            }
							$titlenQuote = "'". $titlen ."'";
							$descnQuote = "'". $descn ."'";
							$authornQuote = "'". $authorn ."'";
                            echo "
                                <h1>". $titlen ."</h1>
                                <tr><td>". $shortDescn ."...</td></tr>
                                <tr><td><a href='javascript:return false;' onclick='readMore(". $idn .",". $titlenQuote .",". $categoryn .",
								". $descnQuote .",". $postdaten .",". $authornQuote .")'>Read More</a></td></tr>
                                <tr><td>Written by: " . $authorn . "</td></tr>
                                <tr><td><img src='images/hardcore-games-newsbar-border.png' width='470px' /></td></tr>
                            ";
                        }
                        echo "</table><br />";

                        /* close statement */
                        $stmt->close();
                    }

                    /* close connection */
                    $mysqli->close();
                ?>

And the function it's going to in the head:

    <script type="text/javascript">
		function readMore(id,title,cat,desc,post,auth) {
			alert(id +","+ title +","+ cat +","+ desc +","+ post +","+ auth);
			var $dialog = $('<div></div>').html('This dialog will show every time!').dialog({autoOpen: false,title: 'Basic Dialog'});
			$dialog.dialog('open');
			$dialog.title = title;
			$dialog.html(desc);
		}
		</script>

This is a page using load() in the main index page. I've had issues with dialog too, but it's not even hitting that point yet so thats the next step. In case need to know, all jquery includes are on the main index page. The load() is going into a div on the index page, and this works fine so far.