内联可编辑行以使用 ajax php 更新数据库 mysql 中的每个记录

Posted

技术标签:

【中文标题】内联可编辑行以使用 ajax php 更新数据库 mysql 中的每个记录【英文标题】:Inline editable row to update each records in database mysql using ajax php 【发布时间】:2017-01-27 10:35:30 【问题描述】:

这个问题与Error in ajax insert database 相关。很多建议,但没有一个有帮助。 可以看演示:http://phppot.com/php/php-mysql-inline-editing-using-jquery-ajax/ 我在使用 ajax、PHP 和 mysql 编辑数据库中的记录时遇到了麻烦。 表dsdonhang 有很多记录,每条记录执行一个命令。我希望最后一列显示一个名为mavandon 的字符串(跟踪运输),并且可以使用onBlur 触发器对其进行内联编辑。 ajax函数用2个参数发送数据:

    $idd:要编辑的行

    文本:要更新的值

index.php:

<?php
$query = mysqli_query($conn,"SELECT * FROM dsdonhang");            
while($row=mysqli_fetch_assoc($query)) 
    $data[] = $row;

foreach($data as $k=>$v) 
?>
<tr>
<td><?php $madon = $data[$k]["idd"];echo $k+1; ?></td>    
<td><?php echo $data[$k]["donhang"]; ?></td>        
<td contenteditable="true" onBlur="SOMETHING..."><?php echo $data[$k]["mavandon"]; ?></td>
</tr>
<?php            

?>

表结构dsdonhang:

idd int(11) PRIMARY NOT NULL

donhang varchar(50) NOT NULL

mavandon varchar(12) NOT NULL

如果您有任何想法或建议,请指导我。这对我有很大帮助。谢谢!

【问题讨论】:

为什么在while循环中加载一个数组,然后错误地处理数组。为什么不在while循环中输出表格行 在尝试对其运行查询之前连接到数据库会很有用 如果你也looked at how a foreach loop works 会是个好主意 对不起,我没有复制mysqli_connect 函数,我之前已经用过了 如果使用while而不是foreach,我无法处理$idd?!? 【参考方案1】:

似乎没有理由加载一个数组然后处理该数组,因为这一切都可以在 while 循环中完成。

<?php
$query = mysqli_query($conn,"SELECT * FROM dsdonhang");            

while($row=mysqli_fetch_assoc($query)) 

    echo '<tr>';
    echo '<td>' . $row['idd'] . '</td>';
    echo '<td>' . $row['donhang'] . '</td>';
    echo '<td contenteditable="true" onBlur="SOMETHING...">' . $row['mavandon'] . '</td>';
    echo '</tr>';


?>

【讨论】:

谢谢,我明白了。但主要问题仍未解决

以上是关于内联可编辑行以使用 ajax php 更新数据库 mysql 中的每个记录的主要内容,如果未能解决你的问题,请参考以下文章

AJAX PHP MYSQL 更新/编辑记录 (jQuery)

PHP AJAX - 数据更新/编辑作为新数据插入而不是更新

在Kendo UI网格中内联编辑?

更新 DATAGRID 行以保存到 SQL

PHP / MySQL / AJAX - 更新多个数据

在 CKEditor 中使用内联编辑将数据保存到 PHP/Mysql