Javascript 使用for循环生成输入时,通过Ajax发送多个表单数据的问题
在ajax中使用serialize解决了这个问题。此信息是固定的。 我制作了一个表单来更新mysql表中的现有数据 如果不使用ajax,它将成功地更新数据 但是对于Ajax调用,我在传递name=“id[]”和name=“title[]”时遇到了一个问题 这些是表单中的输入标记Javascript 使用for循环生成输入时,通过Ajax发送多个表单数据的问题,javascript,php,ajax,Javascript,Php,Ajax,在ajax中使用serialize解决了这个问题。此信息是固定的。 我制作了一个表单来更新mysql表中的现有数据 如果不使用ajax,它将成功地更新数据 但是对于Ajax调用,我在传递name=“id[]”和name=“title[]”时遇到了一个问题 这些是表单中的输入标记 $sql = "SELECT * from table"; $results = mysqli_query($con, $sql); <form name="form1" m
$sql = "SELECT * from table";
$results = mysqli_query($con, $sql);
<form name="form1" method="post" action="">
<?phpwhile($rows=mysqli_fetch_array($results)){ ?>
<input name="id[](at this point i am having problem)" type="hidden" id="id" value="<?php echo $rows['id']; ?>">
<input name="title[] (at this point i am having problem)" type="text" id="title" value="<?php echo $rows['title']; ?>">
<?php } ?> //closing while
<input type="submit" name="submit" value="Submit" id="save">
这是PHP(add.PHP)
$sql=“从表中选择*”;
$results=mysqli_查询($con,$sql);
$count=mysqli\u num\u行($results);
如果(isset($_请求)){
$count=count($_POST[“id”]);
对于@EL_Vanja建议的($i=0;$i):
在您的循环中:
<?phpwhile($rows=mysqli_fetch_array($results)){ ?>
<input name="id[](at this point i am having problem)" type="hidden" id="id" value="<?php echo $rows['id']; ?>">
<input name="title[] (at this point i am having problem)" type="text" id="title" value="<?php echo $rows['title']; ?>">
<?php } ?> //closing while
您正在生成无效的html。您的所有输入都具有相同的id,因此您的JS将只获取第一个id。另外请注意,您构建查询的方式不安全。您可以使用or。您应该使用or来代替。@El_Vanja我尝试使用类,但这仍然不起作用。您可以展示如何更改AJAX以反映这一点吗?这将非常容易呃,如果您只是序列化了整个表单,而不是尝试对不同类型的字段名分别进行序列化。感谢您的回复,我尝试了使用类,但仍然无法工作:(它不工作是什么意思?它只发送第一个元素?还是什么也不发送?或者你无法在服务器中获取它?我使用序列化修复了它,它工作正常。感谢帮助:)
$sql = "SELECT * from table";
$results = mysqli_query($con, $sql);
$count=mysqli_num_rows($results);
if(isset($_REQUEST)){
$count=count($_POST["id"]);
for($i=0;$i<$count;$i++){
$sql="UPDATE `title` SET `title` = '" . $_POST['title'][$i] . "' WHERE `id` ='" . $_POST['id'][$i] . "'";
$result1=mysqli_query($con, $sql);
}
echo $count;
//$sql = "UPDATE `title` SET `title`='$title' WHERE `title`.`id` =$id" ;
if(mysqli_query($con, $sql)){
echo "Updated";
}
else{
echo mysqli_error($con);
}
}
<?phpwhile($rows=mysqli_fetch_array($results)){ ?>
<input name="id[](at this point i am having problem)" type="hidden" id="id" value="<?php echo $rows['id']; ?>">
<input name="title[] (at this point i am having problem)" type="text" id="title" value="<?php echo $rows['title']; ?>">
<?php } ?> //closing while
<input name="id[]" type="hidden" id="id" value="10">
<input name="title[]" type="text" id="title" value="foo">
<input name="id[]" type="hidden" id="id" value="25">
<input name="title[]" type="text" id="title" value="bar">
<input name="id[]" type="hidden" id="id" value="36">
<input name="title[]" type="text" id="title" value="fuzz">
<input name="id[](at this point i am having problem)" type="hidden" class="id" value="<?php echo $rows['id']; ?>">
<input name="title[] (at this point i am having problem)" type="text" class="title" value="<?php echo $rows['title']; ?>">
<?php } ?> //closing while