2016-10-10 5 views
0

Я работаю над динамической формой, где пользователи могут добавлять местоположения по мере их поступления, и я очень близок к тому, чтобы их обернуть, но теперь я понимаю, что отправляется только первая часть массивов. Кнопка отправки находится в конце, и все поля одинаковы, используя []. Прежде чем вставить свой код, я сначала перейду к рассмотрению проблемы. Во-первых, никаких дополнительных данных в моем db нет - только первое место. Во-вторых, когда я делаю var_dump, массив показывает мне только первое место.Почему только часть моих полей формы отправляется?

<div id="locInformation"> 
<form name="assessment" action="create_new_record.php" method="post" enctype="multipart/form-data"> 

<input type="hidden" name="id" value="<?=$id?>"> 
<p>Location: <input type="text" name="location[]" > </p> 
<p>Department name: <input type="text" name="department_name[]" > </p> 
<p>Participant name: <input type="text" name="participant_name[]" > </p> 
<p>Activity performed: <textarea cols="25" rows="3" name="activity[]" ></textarea> </p> 
<p>Conditon: <select class="form-control" name="condition[]" style="width:20%;"> 
    <option value="dry" id="dry">Dry</option> 
    <option value="heavy_oil" id="heavy_oil">Heavy Oil/Grease</option> 
    <option value="light_oil" id="light_oil">Light Oil</option> 
    <option value="sandy" id="sandy">Sandy/Grit</option> 
    <option value="wet" id="wet">Slightly Wet</option> 
</select></p> 

<div class="well"> 
<p>Avg Number of Non-recordable Injuries: <input type="number" name="non_rec_injuries[]" > 
<select name="non_rec_injury_timeframe[]"> 
    <option value="last month">Last month</option> 
    <option value="last 6 months">Last 6 months</option> 
    <option value="last 12 months">Last 12 months</option> 
</select> 
</p> 
<h4>Based on the number of Non-recordable Injuries - Estimate the Injury Type by Percentage </h4> 
<div class="container-fluid"> 
    <div class="form-group row"> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_cuts[]" type="number" min="0" max="100" value="" placeholder="Cuts/Lacerations/Abrasion" > </div> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_burns[]" type="number" min="0" max="100" value="" placeholder="Heat or Chemical Burn" ></div> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_infection[]" type="number" min="0" max="100" value="" placeholder="Infection" > </div> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_dermatitis[]" type="number" min="0" max="100" value="" placeholder="Dermatitis" > </div> 
    <div class="clearfix visible-xs-block"></div> <div class="hidden-xs hidden-sm"><br ><br ></div> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_puncture[]" type="number" min="0" max="100" value="" placeholder="Puncture" ></div> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_sprain[]" type="number" min="0" max="100" value="" placeholder="Carpal Tunnel/Sprain" ></div> 
    <div class="col-md-3 col-sm-4"><input class="form-control" name="non_rec_impact[]" type="number" min="0" max="100" value="" placeholder="Impact/Contusion/Inflammation" > 
    </div> 
    </div> 
</div> 
</div> 

<p>Estimated Cost of Productivity (Downtime)/minute: $ <input type="number" name="cost_of_productivity[]" > </p> 
<p>Percent of leakage related to uncontrolled dispensing: <input type="number" min="0" max="100" name="leakage[]" > % </p> 
<p>Which competitor is the participant using? <input type="text" name="competitor[]" ></p> 
<p>Usage Rate per 12 months (pairs): <input type="number" min="0" name="usage_rate[]" ></p> 
<p>Estimated cost per pair: $ <input type="number" min="0" name="cost_per_pair[]" ></p> 
<br >  

<!--<input style="margin-left:10px;" class="btn btn-warning" type="button" value="Remove Location" onclick="removeLoc('locInformation','additionalLoc'); ">--> 

<div class="hidden" id="additionalLoc" > 
<br><p>Location: <input type='text' name='location[]' > </p> 
<p>Department name: <input type='text' name='department_name[]' > </p> 
<p>Participant name: <input type='text' name='participant_name[]' > </p> 
<p>Activity performed: <textarea cols='25' rows='3' name='activity[]' ></textarea> </p> 
<p>Conditon: <select class='form-control' name='condition[]' style='width:20%;'> 
    <option value='dry' id='dry'>Dry</option> 
    <option value='heavy_oil' id='heavy_oil'>Heavy Oil/Grease</option> 
    <option value='light_oil' id='light_oil'>Light Oil</option> 
    <option value='sandy' id='sandy'>Sandy/Grit</option> 
    <option value='wet' id='wet'>Slightly Wet</option> 
</select></p> 

<div class="well"> 

<p>Avg Number of Non-recordable Injuries: <input type='number' name='non_rec_injuries[]' > 
<select name='non_rec_injury_timeframe[]'> 
    <option value='last month'>Last month</option> 
    <option value='last 6 months'>Last 6 months</option> 
    <option value='last 12 months'>Last 12 months</option> 
</select> 
</p> 
<h4>Based on the number of Non-recordable Injuries - Estimate the Injury Type by Percentage </h4> 
<div class='container-fluid'> 
    <div class='form-group row'> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_cuts[]' type='number' min='0' max='100' value='' placeholder='Cuts/Lacerations/Abrasion' > </div> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_burns[]' type='number' min='0' max='100' value='' placeholder='Heat or Chemical Burn' ></div> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_infection[]' type='number' min='0' max='100' value='' placeholder='Infection' > </div> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_dermatitis[]' type='number' min='0' max='100' value='' placeholder='Dermatitis' > </div> 
    <div class='clearfix visible-xs-block'></div> <div class='hidden-xs hidden-sm'><br ><br ></div> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_puncture[]' type='number' min='0' max='100' value='' placeholder='Puncture' ></div> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_sprain[]' type='number' min='0' max='100' value='' placeholder='Carpal Tunnel/Sprain' ></div> 
    <div class='col-md-3 col-sm-4'><input class='form-control' name='non_rec_impact[]' type='number' min='0' max='100' value='' placeholder='Impact/Contusion/Inflammation' ></div> 
    </div> 
</div> 
</div> 

<p>Estimated Cost of Productivity (Downtime)/minute: $ <input type='number' name='cost_of_productivity[]' > </p> 
<p>Percent of leakage related to uncontrolled dispensing: <input type='number' min='0' max='100' name='leakage[]' > % </p> 
<p>Which competitor is the participant using? <input type='text' name='competitor[]' ></p> 
<p>Usage Rate per 12 months (pairs): <input type='number' min='0' name='usage_rate[]' ></p> 
<p>Estimated cost per pair: $ <input type='number' min='0' name='cost_per_pair[]' ></p> 

</div> 

</div> 
<br > 
<input style="margin-left:5px;" class="btn btn-primary" type="button" value="Add Additional Location" onClick="addInput('locInformation');"> 
<input style="margin-left:10px;" class="btn btn-success submit" type="submit" name="submit" value="Submit Assessment"> 

</form> 
<br > 

</div> 

    </body> 
</html> 

Моя единственная мысль - JS для динамического поля что-то вникает. У div additionalLoc есть тег class="hidden", поэтому он не отображается при начальной загрузке. Я сделал поиск и наткнулся на несколько похожих вопросов, но ответы не были применимы, например Part of form doesn't submit.

+0

(Вопрос улучшения: вы действительно улучшили свой последний вопрос: http://stackoverflow.com/q/39918472 к этому! Теперь попробуйте создать [mcve], поэтому вы уменьшите код, чтобы посмотреть, и вы также просто нужно посмотреть на код, который, как вы знаете, вызывает ошибку.) – Rizier123

+0

где ваш код sql и где ваш код для вставки данных в sql? –

+1

@AbhrapratimNag, вы можете видеть это из http://stackoverflow.com/q/39918472. Я не думаю, что это проблема, потому что «var_dump» из данных POST показывает только первое местоположение. –

ответ

0

Хорошо, теперь у меня это работает. Проблема была в моем HTML. После того, как я подумал, что проблема с JS или PHP была проблемой, я пришел к выводу, что проблема с HTML может быть проблемой. Используя такой инструмент, как https://validator.w3.org/, чтобы посмотреть на HTML, было выявлено несколько проблем и после исправления форма работает должным образом.

Первая проблема заключалась в том, что у меня было несколько полей id (которые не обязательны для заполнения), и поля не были уникальными - это необходимо при использовании id.

Во-вторых, выпуск был дополнительным </div>, что вызвало проблему форматирования.

В-третьих, я изменил свое местоположение JS с class="hidden" на style="display:none".

Смежные вопросы