【问题标题】:PHP echo JS which includes PHP variablePHP echo JS 包含 PHP 变量
【发布时间】:2013-06-03 09:09:18
【问题描述】:

我有 sendForm.php 文件,这是使用 PHPMailer 发送表单的 php。在标签之间有回声,我需要在标签之间使用 PHP 变量。这有可能吗?我知道将 PHP 和 JS 结合起来太过分了,但是我能做些什么……我需要一个弹出窗口,这就是我也使用 JS 的原因。回声本身只打印到网页本身。

$totalSize = ($totalSize/(1024*1024));
$totalSize = round($totalSize,2);

if(!$mail->Send()) {
   echo "Error sending form! You are trying to send too large files. Their size is: ", $totalSize, " MB";
   echo '<script type="text/javascript">alert("Error sending form! You are trying to send too large files. Their size is: ??? ");</script>';
   }

如何在 JS 中打印 $totalSize 变量来代替第二个回显中的那些问号? 谢谢你的帮助。我还是个初学者。

【问题讨论】:

  • 就像你在第一个 echo 中所做的那样?
  • echo '&lt;script type="text/javascript"&gt;alert("Error sending form! You are trying to send too large files. Their size is: ', $totalSize, '");&lt;/script&gt;';,没有?
  • 好吧,我已经尝试过了,它似乎以某种方式破坏了脚本 - 添加后窗口不会弹出。
  • Their size is: ??? ")更改为Their size is: $totalSize ")
  • 我不得不用 '. $totalSize。无论如何谢谢:)

标签: php javascript echo


【解决方案1】:
if(!$mail->Send()) {
   echo "Error sending form! You are trying to send too large files. Their size is: ". $totalSize. " MB";
   echo '<script type="text/javascript">alert("Error sending form! You are trying to send too large files. Their size is: '. $totalSize. '");</script>';
   }

//我纠正了第一个回显中的一些错误(用点替换逗号)

【讨论】:

  • 第一个语句没有错误,在echo中使用,有效输出可变数量的参数。
  • 逗号不用于连接字符串,这就是点的用途。只需 echo 函数接受可变数量的参数,因此您可以将它们以逗号分隔。像这样使用它是一种非常常见的做法,因为您避免了无用的操作(连接)
  • 我明白了,@mishu 和 FDL。
  • 谢谢,这很好用 :) 顺便说一句 ' 和 " 怎么样?有如何正确使用它们的命令吗?
  • 是的,'' 是字符串文字,它没有被 php 解析,"" 被 php 解析,这就是你可以在那里使用 php 变量的原因。更多关于php.net/manual/en/language.types.string.php
【解决方案2】:

PHP 是一种服务器端语言,而 JavaScript 是一种客户端语言。 如果您尝试在服务器端验证表单而不重新加载页面(并让 JavaScript 弹出警告),请查看 AJAX

【讨论】:

  • 发现这也可以用javascript来完成。 stackoverflow.com/questions/16932907/…
  • 当然可以,但是您的问题是是否可以将 JavaScript 与 PHP 结合使用,而不是解决特定问题。如果您无法理解两者之间的关系,请查看:programmers.stackexchange.com/questions/171203/…
  • 是的,对不起,我在给你写这篇评论的时候正在考虑更多的问题。但是,根据您的回复,您的想法和我一样。没关系,我仍然让你 +1 扩大我的视野:)
  • 没有问题!这不是关于我获得声誉,而是关于获得正确问题的正确答案
【解决方案3】:

试试这个

  if(!$mail->Send()) {
    echo "Error sending form! You are trying to send too large files. Their size is: ".$totalSize." MB";
        ?>
<script type="text/javascript">
alert("Error sending form! You are trying to send too large files. Their size is: <?php echo $totalSize;?> ");
</script>
<?php } 

【讨论】:

  • 谢谢。但是,由于 PHPMailer ( $mail = new PHPMailer(); ) 的实例与我的整个文件一起工作,我无法分割 PHP。
  • 你可以分开它可能在邮件中没有任何区别:)
  • 为您的知识和我的知识尝试一次 :)
猜你喜欢
  • 1970-01-01
  • 2013-12-18
  • 2015-01-02
  • 1970-01-01
  • 2012-03-28
  • 2011-10-05
  • 1970-01-01
  • 2011-05-23
  • 1970-01-01
相关资源
最近更新 更多