表单提交不是由jQuery发布动态创建的字段

时间:2016-10-01 17:12:04

标签: javascript php jquery forms phpstorm

实际上我是动态生成HTML-Form的输入字段。 现在我的问题是提交表单时什么都不会发布到我的php。

所以当我使用

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

在我的php中有一个空数组。

这是我的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";

&GT;

以下是从表单提交调用的.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一切正常。

伙计们,别忘了给你的输入类型命名;)

1 个答案:

答案 0 :(得分:0)

输出是什么:

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

如果您的帖子阵列中没有 saetze ,则应使用firebug或chrome devTools检查HTML代码,以查看您的javascript代码是否正常运行。