如何在javascript和php之间进行协作
我在一个页面上为图像库和php调用javascript。 让我向您展示一些代码,让您清楚地了解: PHP如何在javascript和php之间进行协作,php,javascript,Php,Javascript,我在一个页面上为图像库和php调用javascript。 让我向您展示一些代码,让您清楚地了解: 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 = my
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>';
echo”“;
//使用问题ID获取可能的答案
$query=“从答案中选择aid,其中qid=”$qid“按aid ASC排序”;
$result=mysql\u query($query)或die(“ERROR:$query.”.mysql\u ERROR());
如果(mysql_num_rows($result)>0){
while($row=mysql\u fetch\u object($result)){
回声“;
回声“;
回显“$row->atitle.”;
回声“;
}
回声“;
回声“
”;
回声“;
}
回声';
}
上面的代码获取对象ID并相应地放置jpeg图像(缩略图)。
现在,当我点击这些缩略图时,javascript会打开一个覆盖图来显示大版本。我想将$row->aid
的值传递给javascript
然后,我想从javascript中填写一个表单,并将$row->aid
和表单传递给user\u submit.php
,将其添加到数据库中
我是php新手。请帮帮我。有很多方法可以将数据传递到JavaScript;更简单的方法是:
<script>
aid = <?php print $row->aid; ?>
// The rest of the script
</script>
援助=
//脚本的其余部分
我只编写了必要的代码,甚至没有编写标签的所有属性
SCRIPT
有很多方法可以将数据传递给JavaScript;更简单的方法是:
<script>
aid = <?php print $row->aid; ?>
// The rest of the script
</script>
援助=
//脚本的其余部分
我只编写了必要的代码,甚至没有编写标记
脚本的所有属性。首先,您不需要重复所有内容。类似的情况也同样有效:
while ($row = mysql_fetch_object($result)) { ?>
<div id=captionbox style='width: 110px;float:left;color:#FFF;text-align:center;'>
<a href='#' class='thumb' ><img class='thumb-img' src='images/roadies/th<?=$row->aid?>jpg' /> </a>
<?php ...
while($row=mysql\u fetch\u object($result)){?>
首先,您不需要重复所有内容。类似这样的内容同样有效:
while ($row = mysql_fetch_object($result)) { ?>
<div id=captionbox style='width: 110px;float:left;color:#FFF;text-align:center;'>
<a href='#' class='thumb' ><img class='thumb-img' src='images/roadies/th<?=$row->aid?>jpg' /> </a>
<?php ...
while($row=mysql\u fetch\u object($result)){?>
<>您可以将变量、对象或数组文字声明写入到JavaVCIPT文件或HTML文件中的<代码> <代码>元素中,正如KiAMLALUNO正确地说的。但是我建议,(1)使用<代码> var >代码>关键字(2)考虑使用单独的命名空间。< /P>
如果您有几件事要告诉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>
变量数据=
window.console.log(数据);
试试看javascript控制台,看看它是否有效
编辑:我喜欢这种方法的另一个原因是,您可以使用PHP的数组处理便利来构造任意复杂的$jsdata
,而不必担心转义问题,只使用一个全局JS对象名。您可以将变量、对象或数组文字声明写入javascipt文件或文件如KiAMLALUNO正确地说的,在HTML文件中,E> < /Cord>元素。但是我建议,(1)使用<代码> var >代码>关键字(2)考虑使用单独的命名空间。< /P>
如果您有几件事要告诉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>
变量数据=
window.console.log(数据);
试试看javascript控制台,看看它是否有效
编辑:我喜欢这种方法的另一个原因是,你可以使用PHP的数组处理便利来构造任意复杂的$jsdata
,而不用担心转义问题,只使用一个全局JS对象名。你确定这是正确的吗?我现在正在尝试。它不起作用。你确定这是正确的吗我现在正在尝试。它不起作用。你的意思是我应该将onclick操作放在锚定标记上或图像周围?我已经更新了代码。你能看到我是否做错了什么吗?正如danben所说,如果没有看到你的JavaScript,很难说。如果你将表单提交给JavaScript,你不需要onlick处理程序。Echo y我们将变量放入隐藏的表单字段值中,并使用JS检索。我看到您已经编辑了代码以使用$qid作为值,但我没有看到设置$qid的任何地方。此外,请记住引用字符串(例如,“name”属性的值)。请参考HTML参考。哦,$qid已经传递到您的页面,看起来是这样的。不,从您的问题中我可以看出,您希望选择一行并将其辅助提交到您的页面,对吗?在这种情况下,您希望使用onclick或其他方法将隐藏输入的值设置为所选辅助r方法,然后提交。你的意思是我应该将onclick操作放在锚定标记或图像上?我已经更新了代码。你能看到我是否做错了吗?就像danben说的,如果没有看到你的JavaScript,很难说。如果你将表单提交给JavaScript,你不需要onlick处理程序。回显你的变量我看到您已经编辑了代码以使用$qid作为值,但是我没有看到任何设置$qid的地方。另外,请记住引用字符串(例如,“name”属性的值)。请参考HTML参考。哦,$qid已经传递到您的页面,看起来是这样的。不,从您的问题中我可以看出,您希望选择一行并将其辅助提交到您的页面,对吗?在这种情况下,您希望使用onclick或其他方法将隐藏输入的值设置为所选辅助r方法,然后提交。为了清楚起见,第一行代码的方法属性应该是:[method='post'],而不是[method=post],为了清楚起见,第一行代码的方法属性应该是:[method='post'],而不是[method=post]