无法从javascript生成的数据中获取php中的数据

时间:2013-04-09 16:11:04

标签: php javascript mysql

<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脚本只是系统的一小部分而不是整个部分。

2 个答案:

答案 0 :(得分:2)

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

HTML:

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

JS:

var foo = document.getElementById("catform");
foo.appendChild(element);

答案 1 :(得分:1)

在您的javascript中添加新属性:

 element.setAttribute("id", "new_cat");