При публикации с помощью метода jQuery serialize захватываются все элементы массива, кроме текстовой области. Я проверяю тот же результат из var_dump и Firebug.
$(function() {
$("#btnJQ").on("click", function() { //100
var jqxhr = 'a=crea_inv&' + $('#frmData').find('input[name^="empl"]').serialize();
console.log(jqxhr)
$.post('jq.php', {
'empl': jqxhr
}, function(response) {
$(".result").html(response);
}); //.100
});
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="frmData" action="" method="post">
<table>
<tr>
<td>ID</td>
<td>First Name</td>
<td>Last Name</td>
</tr>
<tr>
<td><input type="text" name="empl[0][id]" value="2135" /></td>
<td><input type="text" name="empl[0][first_name]" value="John" /></td>
<td><input type="text" name="empl[0][last_name]" value="Doe" /></td>
</tr>
</table>
<textarea id="lnotes" name="empl[0][lnotes]" rows="4" cols="50">
At .com you will learn how to make a website. We offer free tutorials in all web development technologies.
</textarea>
<br>
<button id="btnJQ" type="button">JQ</button>
<input type="submit" name="Submit" />
</form>
Однако при использовании стандартного подтверждения отображается значение textarea.
<?php
//parse array to readable str
$post_data = $_POST['empl'];
parse_str($_POST['empl'],$new_data);
//Now We have the new array saved in a variable called $new_data
print_r($new_data);
?>
Результат от var_dump и firebug.
Array
(
[a] => crea_inv
[empl] => Array
(
[0] => Array
(
[id] => 2135
[first_name] => John
[last_name] => Doe
)
)
)
Результат по стандартной форме отправки
Array ( [0] => Array ( [id] => 2135 [first_name] => John [last_name] => Doe [lnotes] => At .com you will learn how to make a website. We offer free tutorials in all web development technologies. ) ) At .com you will learn how to make a website. We offer free tutorials in all web development technologies.