2016-10-01 51 views
2

其實我爲HTML表單動態地生成輸入字段。 現在我的問題是提交表單時,什麼都不會發布到我的PHP。表單提交不是發佈由jQuery動態創建的字段

所以,當我在我的PHP使用

echo "<pre>"; print_r($_POST) ; echo "</pre>"; 

有一個空數組。

這裏是我的html形式:

<form method="POST" action="../php/saveTraining.php" id="trainingForm"> 
    <section id="mainCategory" class="hidden"> 
     <label><input type="checkbox" name="mainCat" id="Krafttraining">Krafttraining</label> 
     <label><input type="checkbox" name="mainCat" id="Joggen">Joggen</label> 
    </section> 
    <section id="categoryKrafttraining" class="hidden"> 
     <label class="subCategory"><input type="checkbox" class="subCategory">Kurzhantel</label> 
     <label class="subCategory"><input type="checkbox" class="subCategory">Bankdrücken</label> 
    </section> 
    <section id="categoryJoggen" class="hidden"> 
     <label><input type="number" name="joggingKm" id="joggingKm">Kilometer</label> 
     <label><input type="number" name="joggingTime" id="joggingTime">Zeit</label> 
    </section> 
    <input type="hidden" id="saveTraining" name="sent" value="save"> 
</form> 

可以忽略第3節,因爲其實我不與它合作。

因此,這裏的.js文件的代碼,我創建的附加字段:

('#'+ category +' :checkbox').off('change').change(function (event) { 
     console.log("YUP"); 
     sectionID = 'sect'+ $(event.target.parentNode).text(); 
     if (this.checked){ 
      //append input fields 
      $('#'+category).append('<section id='+sectionID+'><h5>'+$(event.target.parentNode).text()+'</h5><label><input type="number" name="saetze" id="saetze">Sätze</label>' + 
              '<label><input type="number" name="wiederholungen" id="wiederholungen">Wiederholungen</label></section>'); 
     }else{ 
      console.log("HIER"); 
      //delete not necessary input fields 
      $('#'+sectionID).remove(); 

     } 
    }); 

這裏是我的.PHP連接:

<?php 
$host= "127.0.0.1"; 
$user= "censored"; 
$pw= "censored"; 
$db= "censored"; 


$mysqli = new mysqli("localhost", "$db", "$user", "$pw", 3306); 
if ($mysqli->connect_errno) { 
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") "; 
} 

echo $mysqli->host_info . "\n"; 

>

和這裏的。從表格調用的PHP提交:

<?php 
include ('datenbankConnect.php'); 

$saetze = $_POST['saetze']; 
$wiederholungen = $_POST['wiederholungen']; 
echo "werte:"; 
echo $saetze; 
echo "<pre>"; print_r($_POST) ; echo "</pre>"; 
?> 

所以在提交表單的時候我也從我的PHP收到以下消息:

注意:未定義指數:
注意:未定義指數:

也許你能幫助我。這會很棒!

所以method="post"有問題。當我使用method="get",並相應地更改PHP的GET一切工作正常。

所以POST可能不適用於PhpStorm的集成服務器嗎?


解決

的問題是,PhpStorm的集成服務器與POST方法的一些問題。隨着GET一切正常。

和球員,不要忘了給你的輸入類型的名稱;)

+0

輸入的名稱必須是唯一的,我想這就是問題所在。 – Jeff

+0

我想你說的是名字=「maincat」? 我刪除它來測試你的理論,但它沒有效果,仍然有一個空的POST數組。 – webbie

+0

現在我給所有的輸入一個名字,但它沒有效果 – webbie

回答

0

什麼是輸出:

echo "<pre>"; print_r($_POST) ; echo "</pre>"; 

如果你沒有saetze在您的文章數組,你應該用firebug或chrome devTools檢查HTML代碼,看看您的JavaScript代碼是否正常工作。

+0

你好輸出它是空的! 但是當我將表單方法更改爲「GET」並在我的php中更改它時,一切正常。 所以我使用phpStorm集成服務器可以這是爲什麼POST方法不工作的原因? – webbie

+0

問題解決了,謝謝 – webbie