Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用for循环生成输入时,通过Ajax发送多个表单数据的问题_Javascript_Php_Ajax - Fatal编程技术网

Javascript 使用for循环生成输入时,通过Ajax发送多个表单数据的问题

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

在ajax中使用serialize解决了这个问题。此信息是固定的。

我制作了一个表单来更新mysql表中的现有数据

如果不使用ajax,它将成功地更新数据

但是对于Ajax调用,我在传递name=“id[]”和name=“title[]”时遇到了一个问题

这些是表单中的输入标记

$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