我正在尝试将文本字段的多行插入到我的数据库中。
<html>
<head>
</head>
<body>
<table>
<tr>
<td><input type="text" id="name[0]" name="name[0]"></td>
<td><input type="text" id="grade[0]" name="grade[0]"></td>
</tr>
<tr>
<td><input type="text" id="name[1]" name="name[1]"></td>
<td><input type="text" id="grade[1]" name="grade[1]"></td>
</tr>
<tr>
<td><input type="text" id="name[2]" name="name[2]"></td>
<td><input type="text" id="grade[2]" name="grade[2]"></td>
</tr>
<tr>
<td><input type="text" id="name[3]" name="name[3]"></td>
<td><input type="text" id="grade[3]" name="grade[3]"></td>
</tr>
</table>
<input type="button" id="submit_in" name="submit_in" value="submit">
</body>
</html>
我将index放入我的id,以便我可以使用Ajax循环它,但我不知道如何循环它并使用Ajax插入它。
<script type="text/javascript">
$(document).ready(function(){
$('#submit_in').click(function() {
var stud_name = $('#name[0]').val();
var stud_grade = $('#grade[0]').val();
alert(stud_name+" "+stud_grade);
$.ajax({
type:"post",
url:"insert.php",
dataType:'json',
data:{'name':stud_name,'grade':stud_grade},
success:function(data){
}
});
});
});
</script>
这是我的PHP代码:
<?php
$host = 'Localhost';
$username= 'root';
$password= '12345';
$db_name = 'multiple_ajax';
$con = mysql_connect($host,$username,$password) or die ("Cant Connect");
mysql_select_db($db_name) or die ("Cant Select DataBase");
error_reporting(E_ALL ^ E_NOTICE);
$name= $_POST['name'];
$grade = $_POST['grade'];
$insert = "INSERT INTO stud_info VALUES('$name','$grade')";
if(@!mysql_query($insert)){
die('error insert'.mysql_error());
}
?>
我的PHP代码只有两个可以使用Ajax的变量,因为我认为Ajax将使用id中的索引来循环这些变量。我是Ajax和PHP的新手
答案 0 :(得分:2)
我确定你知道你可以通过HTTP请求传递数组,对吧?你为什么要一次做一个请求?连接所有这些!
var GradeData = [];
$("table > tr").each(function() {
var k = $(this).find("input[type='text']");
if (k.length == 2) {
GradeData.push({ "name": k.eq(0).val(), "grade": k.eq(1).val()});
}
});
然后,您将拥有一个数组GradeData
,每个元素都有一个名称和一个等级。要通过AJAX传递它,请执行以下操作:
$.ajax({
url: "insert.php",
type: "post",
data: {
students: GradeData
}
});
从那里开始,使用PHP恢复它是一件简单的事情(它将以$_POST['students']
形式出现,并且数组中每个元素的格式将始终为Array('grade'=&gt;' ','name'=&gt;'某事')。从那里,你只需要迭代......就是这样!
从那里插入行同样容易:
<?php
$host = 'Localhost';
$username= 'root';
$password= '12345';
$db_name = 'multiple_ajax';
$con = mysql_connect($host,$username,$password) or die ("Cant Connect");
mysql_select_db($db_name) or die ("Cant Select DataBase");
error_reporting(E_ALL ^ E_NOTICE);
foreach ($_POST['students'] as $data) {
$name= $data['name'];
$grade = $data['grade'];
$insert = "INSERT INTO stud_info VALUES('".mysql_real_escape_string($name)."','".mysql_real_escape_string($grade)."')";
if(@!mysql_query($insert)){
die('error insert'.mysql_error());
}
}
?>