在php文档中渲染javascript代码


Rendering javascript code in php document

我是一个PHP初学者,我有一个快速的问题。是否有可能有javascript代码注入到通过php文档?

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

<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>

这个可行吗?如果不是,为什么不呢?

如果有任何帮助就太好了

将工作得很好-只是要记住关闭引号字符串:

<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
}
?>

我已经从type = "something"type="something"的HTML中删除了属性和值之间的空格,尽管我找不到关于此的"官方"规范。看起来空格是完全有效的…我个人比较喜欢不要留白.....

尝试:

echo '<input type="button" onclick="' . $_POST['fname'] . '" />';

如果fname=doSomething,则使用:

echo '<input type="button" onclick="' . $_POST['fname'] . '()" />';

,你渲染的HTML将是:

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

那么你只需要你的函数在某处:

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

如果您当前的页面是welcome.php并且您运行了此代码,您将按Submit按钮,页面将重新加载并拥有您的新按钮。

但是查看它是否适合你的最好方法是运行它。你为什么不先试试呢?