我正在尝试使用Ajax和PHP从服务器端加载表单。一切正常,但是当我在提交表单时执行ajax调用时,表单数据没有被提取。
我尝试将ajax调用移入和移出document.ready,并尝试将其放在正文末尾。我尝试用函数替换form.on(submit,..),但似乎没有任何作用。
这是我的index.html
<head>
<script>
$(document).ready(function(){
$.ajax({
url:'loadTimesheets.php',
method: 'GET',
success:function(data){
$('#myDiv').html(data);
}
});
});
$('form').on('submit',function(event){
// event.preventDefault();
var form_data = $(this).serialize();
$('#mypara').html(form_data);
$.ajax({
url:'insertTime.php',
method: 'POST',
data: form_data,
success:function(data){
$('#mypara').html(data);
}
});
});
</script>
</head>
<body>
<div>
<p id="mypara"> Change this</p>
</div>
<div class="jumbotron" id="myDiv">
</div>
<script>
// $('form').on('submit',function(event){
// // event.preventDefault();
// var form_data = $(this).serialize();
// $('#mypara').html(form_data);
// $.ajax({
// url:'insertTime.php',
// method: 'POST',
// data: form_data,
// success:function(data){
// $('#mypara').html(data);
// }
// });
// });
function insertTime(event){
var form_data = $(this).serialize();
$('#mypara').html(form_data);
$.ajax({
url:'insertTime.php',
method: 'POST',
data: form_data,
success:function(data){
$('#mypara').html(data);
}
});
}
</script>
</body>
</html>
这是loadTimesheets.php,用于将表单加载到index.html中
<?php
echo "<table class='table table-hover'>";
echo "<form method='post' id='user_form'>
<tr>
<td> Gani </td>
<td> PHP </td>
<td><input type='text' name='time[]' value=0></td>
<td><input type='text' name='time[]' value=0></td>
<td><input type='text' name='time[]' value=0></td>
<td><input type='text' name='time[]' value=0></td>
<td><input type='text' name='time[]' value=0></td>
<td><input type='submit' value='submit'>
</tr></form>";
// <td><input type='submit' value='submit' onsubmit='insertTime(event)'>
echo "</table>";
?>
这是我的insertTime.php,在提交表单时会调用
<?php
$total_time = 0;
$sql = "
UPDATE timesheet
SET time_period_1 = ". $_POST['time'][0]. ",
time_period_2 = ". $_POST['time'][1]. ",
time_period_3 = ". $_POST['time'][2]. ",
time_period_4 = ". $_POST['time'][3]. ",
time_period_5 = ". $_POST['time'][4]. ",
total_time = ". $total_time. ";";
echo $sql;
?>
如果我只是通过将索引作为php文件直接加载并使用require内联加载来直接加载表单,则表单数据提交没有问题。 请在这方面帮助我。预先感谢。