在php文档中呈现javascript代码

在php文档中呈现javascript代码,php,javascript,Php,Javascript,我是PHP的初学者,我有一个简单的问题。可以通过php将javscript代码注入到文档中吗 例如,假设我想在填写表单后插入一个调用函数的按钮: <html> <head> <script type = text/javascript> function func() { ... } </script> </head> <body> <form action = 'welcome.php' met

我是PHP的初学者,我有一个简单的问题。可以通过php将javscript代码注入到文档中吗

例如,假设我想在填写表单后插入一个调用函数的按钮:

<html>
<head>
  <script type = text/javascript>
  function func() {
  ...
  }
  </script>
</head>
<body>

<form action = 'welcome.php' method = 'post>
Name: <input type = 'text' name = 'fname' />
<input type = 'submit' value = 'submit' />
</form>

<?php
if (isset($_POST['fname'])) {
   echo '<input type = button onclick = func />'
}
?>

</body>
</html>

函数func(){
...
}
尝试:

而呈现的HTML将是:

<input type="button" onclick="doSomething()" />

那么您只需要在某个地方使用函数:

<script>
  function doSomething() { }
</script>

函数doSomething(){}

如果当前页面是
welcome.php
,并且您运行了此代码,那么您将按下提交按钮,页面将重新加载并拥有新按钮


但是最好的方法是运行它,看看它是否对您有效。为什么不先尝试一下呢?

可以很好地工作-只需记住关闭带引号的字符串:

<form action='welcome.php' method='post'> // add ' here
Name: <input type='text' name='fname' />
<input type='submit' value='submit' />  // removed a couple of spaces (not required)
</form>

<?php
if (isset($_POST['fname'])) {
   echo '<input type="button" onclick="func" />';   // added some quotes and a semicolon
}
?>
//在此处添加
姓名:
//删除了几个空格(不需要)

我已经将HTML中属性和值之间的空格从
type=“something”
删除到
type=“something”
,尽管我在这方面找不到“官方”规范。似乎空格是完全有效的……我认为我个人的偏好是那里没有空格……

如果您在
if()中关闭字符串,它将起作用。

;PHP毕竟是一种模板语言。是的,您可以通过PHP呼应javascript。@Matt_H——如果
onclick
调用POST变量,该函数如何调用?添加了一个类似的示例,还添加了()@Matt_H——我想有点混乱。”fname'是文本框中的输入,而不是函数名。我知道-我假设
fname
POST变量包含您试图调用的函数名。@Matt_H--啊,我明白了。这很有帮助。谢谢。别忘了在echo语句后面加一个分号!
<script>
  function doSomething() { }
</script>
<form action='welcome.php' method='post'> // add ' here
Name: <input type='text' name='fname' />
<input type='submit' value='submit' />  // removed a couple of spaces (not required)
</form>

<?php
if (isset($_POST['fname'])) {
   echo '<input type="button" onclick="func" />';   // added some quotes and a semicolon
}
?>