これらの値をヘッドのjavascript関数に渡す必要があります。問題は、DBからプルするときに複数の単語があり、hrefを使用すると、javascript:function(vars)を使用して渡すときにスペースで切り捨てられ、onclickをまったく機能させることができないことです。変数( ""、''、/ "、および{)を引用符と角かっこで囲んだり、渡す前に複数の単語が含まれることがわかっているものを引用符で囲んだりしてみました(以下を参照)。 。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();
?>
そして、それが頭の中で行う機能:
<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>
これは、メインのインデックスページでload()を使用しているページです。私もダイアログに問題がありましたが、まだそのポイントに到達していないので、それが次のステップです。知る必要がある場合は、すべてのjqueryインクルードがメインのインデックスページにあります。load()はインデックスページのdivに入り、これは今のところうまく機能しています。