2013-04-09 104 views
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錯了嗎?無法通過javascript生成的數據獲取php中的發佈數據

更新:請注意,底部的php腳本只是系統的一小部分,而不是整個部分。

+0

請重新格式化您的代碼,目前看起來你已經有了PHP代碼在您的HTML(一些PHP開放標籤丟失)。 – Halcyon 2013-04-09 16:12:56

+0

@Frits van Campen 請立即檢查 – Aravind 2013-04-09 16:17:06

+1

您將輸入元素追加到表單的父級,而不是表單本身。 – 2013-04-09 16:18:58

回答

1

在JavaScript中添加新的屬性:

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

表單由'name'提交,而不是'id'。問題在別處。 – Halcyon 2013-04-09 16:19:57

+0

這實際上工作,謝謝 – Aravind 2013-04-09 16:25:06

+0

任何人都可以活着解釋如何工作?如果輸入不在表單標籤中,那麼單獨設置一個id應該沒有什麼區別,除非它還附帶一個指向表單id(html5)的表單屬性 - 在這種情況下,它既不會。跆拳道? – 2013-04-09 16:44:05

2

在您的JS代碼要追加新<input>cat專區內,但這樣一來就會是<form>。你的領域追加到形式,它指定一個ID,像這樣:

HTML:

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

JS:

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

heh。我沒有發佈作爲答案,因爲我忘記了如何在原始js中定位第一個表單元素。如何更新您的答案或告訴OP給表單一個ID,我會給你一個加號。 – 2013-04-09 16:21:59

+0

@KaiQing您的評論尚未發佈,當我開始寫我的答案時,我並沒有試圖「竊取」您的評論:P 我無法理解「定位」第一個元素的意思,我只是指出了錯誤,我不應該爲應用程序編寫代碼 – Uby 2013-04-09 16:26:36

+0

我並沒有暗示這一點。我的意思是寫一個$('#cat form')的方法。append(element)在普通的js中。我忘記了如何以非jQuery的方式做到這一點。但我看到你提到給表單一個id,所以我加上了。我真的不在乎信用 – 2013-04-09 16:38:53