插入没有数据时出现问题。所以我希望你帮助解决这个问题。
这是我的档案: students.php
<form id="student_form" method="POST" action="">
<?php
if(mysql_num_rows($q)>0){
?>
<table border="0" dir="ltr" align="center"cellpadding='0' cellspacing='0' >
<tr> <th>Student ID</th><th>Name</th><th>AVG</th><th>Joining Year</th><th>Message</th><th>Sending Message</th> </tr>
<?php while($row = mysql_fetch_array($q)){ ?>
<tr>
<td id="stud_id[]"> <?php echo $row['studant_ID']; ?></td>
<td> <?php echo $row['studant_Name']; ?></td>
<td> <?php echo $row['Average']; ?></td>
<td> <?php echo $row['year']; ?></td>
<td> <input id="message1[]" name="message1[]" type="text" size="25px" /></td>
<td><input name="submit[]" id="submit[]" type="submit" value="Send" /> </td>
</tr>
<?php }}
这是我的插入文件: insert_message.php
if (isset($_POST['message1']) && $_POST['message1']!='') {
$addss = mysql_real_escape_string($_POST['message1']);
}
if (isset($_POST['stud_id']) && $_POST['stud_id']!='') {
$std_id = mysql_real_escape_string($_POST['stud_id']);
}
//#######################################################################
$query1 = "INSERT INTO `message` (`rcvrid`, `senderid`, `msg`) VALUES ('$std_id', '22011111', '$addss'); ";
mysql_query($query1);
我通过 jquery 和 ajax 连接两个文件。
<script>
$("#student_form").on("submit", function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "insert_message.php",
data: $(this).serialize(),
success: function(data) {
$("#inner_contant").append(data+"<br/>");//instead this line here you can call some function to read database values and display
},
});
});
</script>
答案 0 :(得分:1)
首先 - 在library(zoo)
na.locf(myvec)
#[1] "AMLM12001KP" "AMLM12001KP" "1114002" "1114002" "1121501"
#[6] "1121501" "1231401" "1231401" "1231401" "1231401"
数组中传递给服务器的所有数据都来自具有$_POST
属性的输入字段(除非你有一些自定义的js处理程序)。
所以
name
没有。
如果您想以某种方式存储<td id="stud_id[]"> <?php echo $row['studant_ID']; ?></td>
,请使用studant_ID
字段,例如:
hidden
接下来 - 你想从这个按钮得到什么:
<td>
<input type="hidden" name="stud_id[]" value="<?php echo $row['studant_ID']; ?>" />
</td>
因为它们都属于一个<input name="submit[]" id="submit[]" type="submit" value="Send" />
,所以它们也会这样做 - 将所有字段发送到服务器。如果您希望每个form
按钮仅向服务器发送一对submit
,则必须为每对创建student_id, message
(或执行一些js处理程序)。否则,在您的服务器上,您将拥有:
form
数组所有学生ID
来自表单$_POST['stud_id']
数组所有消息
如果您想全部处理它们 - 请执行$_POST['message1']
:
foreach
当然,您应该删除foreach ($_POST['stud_id'] as $key => $id) {
// find the message
$msg = $_POST['message1'][$key];
$query1 = "INSERT INTO `message` (`rcvrid`, `senderid`, `msg`) VALUES ('$id', '22011111', '$msg'); ";
mysql_query($query1);
}
个功能并使用较新的apis - mysql_
或PDO
答案 1 :(得分:1)
从页面中删除表单
<tr>
<td id="stud_id"> <?php echo $row['studant_ID']; ?>
<input type="hidden" name="stud_id" value="<?php echo $row['studant_ID']; ?>"/>
</td>
<td> <?php echo $row['studant_Name']; ?></td>
<td> <?php echo $row['Average']; ?></td>
<td> <?php echo $row['year']; ?></td>
<td> <input id="message1" name="message1" type="text" size="25px" /></td>
<td><button class="submit" type="submit" />Send </button> </td>
</tr>
第二: 你的js应该是这样的:
$(".submit").on("click", function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "insert_message.php",
data: {stud_id:$(this).closest('tr').find('input[name="stud_id"]').val(),message1:$(this).closest('tr').find('input[name="message1"]').val()},
success: function(data) {
$("#inner_contant").append(data+"<br/>");//instead this line here you can call some function to read database values and display
},
});
});
在insert_message.php中 您需要回显一条消息,看看您是否在更新数据库方面取得了成功
echo json_encode(array('message'=>'Data updated/Error'));