Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript和php之间进行协作_Php_Javascript - Fatal编程技术网

如何在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

我在一个页面上为图像库和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 = 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]