gpt4 book ai didi

php - php 中的 Javascript 无法正常工作

转载 作者:行者123 更新时间:2023-11-28 16:12:06 26 4
gpt4 key购买 nike

<div class="interactionLinksDiv">
<a href="javascript:toggleReplyBox('.$fullname.','.$current_id.','.$current_id.','.$id.','.$thisRandNum.')">REPLY</a>
</div>

我已经用五个参数调用了 javascript 函数toggleReplyBox。这段代码写在php标签内。但是这段代码没有正确执行,并且参数没有正确传递。如果我在这里不带参数调用函数toggleReplyBox,它可以正常工作,但这不是我想要的。

<div class="interactionLinksDiv">
<a href="javascript:toggleReplyBox('<?php echo $fullname; ?>','<?php echo $current_id; ?>','<?php echo $current_id ; ?>','<?php echo $id; ?>','<?php echo $thisRandNum; ?>')">REPLY</a>
</div>

当我将此代码复制到我的 php 文件的 html 部分时,它工作正常,参数被传递并且函数正确执行。但我想知道为什么当一切都相同时该函数无法在 php 标签内部工作。

function toggleReplyBox(sendername,senderid,recName,recID,replyWipit) {
$("#recipientShow").text(recName);
document.replyForm.pm_sender_name.value = sendername;
document.replyForm.pmWipit.value = replyWipit;
document.replyForm.pm_sender_id.value = senderid;
document.replyForm.pm_rec_name.value = recName;
document.replyForm.pm_rec_id.value = recID;
document.replyForm.replyBtn.value = "Send";
if ($('#replyBox').is(":hidden")) {
$('#replyBox').fadeIn(1000);
} else {
$('#replyBox').hide();
}

}

在 php 标签内我更改了代码:

print <<<HTML
<div class="interactionLinksDiv">
<a href="javascript:toggleReplyBox('$fullname','$current_id','$current_id','$id','$thisRandNum')">REPLY</a>
</div>
HTML;

仍然显示错误解析错误:语法错误,C:\xampp\htdocs\Fluid Solution\fluid-solution-website-template\interact\profile1.php 第 130 行出现意外 T_VARIABLE

第 130 行是 <a href...线。

最佳答案

代码的第一个版本既不是 PHP(javascript/HTML 标签是“裸”的)也不是 Javascript:“.”字符串连接运算符在 Javascript 中不起作用,$variable 也不起作用。扩展。

您可以像这样在 PHP 中使用它:

<?php
$fullname = "Test";
$current_id = 15;
$id = 9;
$thisRandNum = 42;
// All lines beyond this point, and...
print <<<HTML
<div class="interactionLinksDiv">
<a href="javascript:toggleReplyBox('$fullname','$current_id',
'$current_id','$id','$thisRandNum')">REPLY</a>
</div>
HTML;
// ...up to here, start at the first column (i.e. they are not indented).
?>

请注意,在此处文档( <<<HTMLHTML 之间的区域)中,您不能使用字符串连接运算符“.”。 (或任何其他)。

或者您可以像在代码的第二个版本中所做的那样,仅将变量替换为 <?php echo $variablename; ?>并将其余所有内容保留为 HTML。

作为一个更简单的示例,让我们考虑 alert()包含从 PHP 发送的消息的框。这意味着:

1) 脚本在服务器端执行; <?php ?> 之间的任意值标签被执行,其输出替换标签本身。

在此阶段之后,我们不再使用 PHP,而是使用 HTML 和 Javascript 的混合体,它可以由发送到的客户端执行。所以我们想要一个像

这样的 HTML
<script type="text/javascript">
alert('Hello, world');
</script>

为此,我们可以用 PHP 生成所有 HTML:

echo '<script type="text/javascript">';
echo "alert('$message');"; // or also: echo 'alert("' . $message . '");';
echo '</script>';

或者我们可以使用此处文档来完成此操作,其中运算符不起作用,但 $variables 起作用:

echo <<<HEREDOCUMENT
<script type="text/javascript">
alert('$message');
</script>
HEREDOCUMENT;

或者我们可以在 HTML 中运行它,并且只依靠 PHP 来生成单独的变量:

<script type="text/javascript">
alert('<?php echo $message; ?>');
</script>

但是您始终需要将 PHP 中的操作、Javascript 中的操作以及 HTML 标记中的操作分开。

关于php - php 中的 Javascript 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com