0
<script>
function funcGet(val)
{
  if(val=="Create new category")
  {
     var element = document.createElement("input");
     element.setAttribute("type", "input");
     element.setAttribute("name", "new_cat");
     element.setAttribute("placeholder", "Enter a new category name");
     var foo = document.getElementById("cat");
     foo.appendChild(element);

   }
 }

</script>
<div id="cat">
<form method="post" action="">
<input type="text" placeholder="Enter a topic name" name="word"><br/><br/><br/>
<input type="input" name="link" placeholder="Enter a link here"><br/><br/><br/>
<select name ="category" onchange="funcGet(this.value);">
<?php
 displayCat();
 ?>
</select>
<br/><br/>
</div>
<select name="site_type">
<?php
  displaySitetype();
?>
</select><br/><br/><br/>
<input type="submit" value="Submit data">
</form>

<?php
if($_POST['category']=="Create new category") {
  if($_POST['new_cat'])
  {
      $new_cat=mysql_real_escape_string($_POST['new_cat']);
      create_new_catentry($new_cat);
      $catname=$new_cat;
  }
  ?>

我无法在同一页面中使用 $_POST 获取 new_cat 的值。我究竟做错了什么?我无法解决它。我可以毫无问题地从页面获取所有其他帖子数据,是否有任何命名错误?我不确定问题是什么,我的 Javascript 错了吗?

更新:请注意,底部的 php 脚本只是系统的一小部分,而不是整个部分。

4

2 回答 2

2

在您的 JS 代码中,您将<input>在div 中附加新的cat,但这样它将位于<form>. 将您的字段附加到表单,为其分配一个 id,如下所示:

HTML:

<form method="post" action="" id="catform">

JS:

var foo = document.getElementById("catform");
foo.appendChild(element);
于 2013-04-09T16:20:12.387 回答
1

在您的 javascript 添加新属性:

 element.setAttribute("id", "new_cat");
于 2013-04-09T16:19:07.417 回答