作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在单个页面上调用图像库的 javascript 和 php。让我向您展示一些代码以使事情变得清楚:
PHP
echo "<form method = post action = 'user_submit.php'>";
// get possible answers using question ID
$query = "SELECT aid, atitle FROM answers WHERE qid = '$qid' ORDER BY aid ASC";
$result = mysql_query($query) or die("ERROR: $query.".mysql_error());
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_object($result)) {
echo "<div id=captionbox style='width: 110px;float:left;color:#FFF;text-align:center;'>";
echo "<a href='#' class='thumb' ><img class='thumb-img' src='images/roadies/th".$row->aid.".jpg' /> </a>";
echo "<input type = hidden name = aid id = rd".$row->aid." value = ".$row->aid.">".$row->atitle."</input>";
echo "</div>";
}
echo "<input type = hidden name = qid value = '".$qid."'>";
echo "<br/>";
echo "<input type = submit name = submit value = 'Vote!'>";
}
echo '</form>';
}
上面的代码获取对象 ID 并相应地放置 jpeg 图像(缩略图)。现在,当我单击这些缩略图时,JavaScript 将打开一个覆盖层以显示大版本。我想将 $row->aid
的值传递给 javascript。
然后,我想从 javascript 填写一个表单,并将 $row->aid
和表单传递给 user_submit.php
以将其添加到数据库中。
我是 php 新手。请帮帮我。
最佳答案
您可以将变量、对象或数组文字声明写入 javascipt 文件或 <script>
HTML 文件中的元素,正如 kiamlaluno 正确所说的那样。但我建议,(1)使用 var
关键字和 (2) 考虑使用单独的命名空间。
如果您有几件事要告诉 JS,将它们放入 PHP 哈希和 json_encode()
中会很方便。然后将编码后的字符串写入输出。这负责命名空间和数据的正确转义。例如:
<?php
$jsdata = array(
'this' => "It\"s gone.\nWhat?",
'that' => array(1,3,2),
'another' => 0x2f );
$jsdata = json_encode($jsdata);
?>
<html>
<head></head>
<body>
<script type="text/javascript">
var thedata = <?php echo "$jsdata;" ?>
window.console.log(thedata);
</script>
</body>
</html>
尝试一下并查看 JavaScript 控制台,看看它是否有效。
编辑:我喜欢这种方法的另一个原因是因为您可以使用 PHP 的数组处理便利性来构造任意复杂的 $jsdata
同时不用担心转义问题,只消耗一个全局 JS 对象名称。
关于php - 如何在 javascript 和 php 之间协作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1934820/
我是一名优秀的程序员,十分优秀!