首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ajax和php的update_multiple_rows

问使用ajax和php的update_multiple_rows
EN

Stack Overflow用户
提问于 2013-10-14 16:31:05
回答 1查看 882关注 0票数 0

需要帮助时,请根据从mysql数据库获取的动态数据更新多行。我已经使用$_Post到udate.php文件实现了这一点,但是如何使用ajax来实现。

代码语言:javascript
复制
//THIS SCRIPT FETCH FROM DATABASE
<body>
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("student") or die("Unable to select database");

    $sql = "SELECT * FROM students ORDER BY id";

    $result = mysql_query($sql) or die($sql."<br/><br/>".mysql_error());

    $i = 0;

    echo '<table width="50%">';
    echo '<tr>';
    echo '<td>ID</td>';
    echo '<td>Name</td>';
    echo '<td>Address</td>';
    echo '</tr>';

    echo "<form name='form_update' method='post' action='update.php'>\n";
    while ($students = mysql_fetch_array($result)) {
    echo '<tr>';
    echo "<td>{$students['id']}<input type='hidden' name='id[$i]'value='{$students['id']}' /></td>";
    echo "<td>{$students['name']}</td>";
    echo "<td><input type='text' size='40' name='address[$i]' value='{$students['address']}' /></td>";
    echo '</tr>';
    ++$i; 
    }
    echo '<tr>';
    echo "<td><input type='submit' value='submit' /></td>";
    echo '</tr>';
    echo "</form>";
    echo '</table>';
    echo $i; ?>


    </body>

//这里是更新脚本//,点击submit,所有行都被更新了,但是我仍然不能用ajax实现dis。UPDATE.PHP

代码语言:javascript
复制
    $size = count($_POST['address']);

    $i = 0;
    while ($i < $size) {
    $address= $_POST['address'][$i];
    $id = $_POST['id'][$i];

    $query = "UPDATE students SET address = '$address' WHERE id = '$id' LIMIT 1";
    mysql_query($query) or die ("Error in query: $query");
    echo "$address<br /><br /><em>Updated!</em><br /><br />";
    ++$i;
}
?>

下面是我在AJAX上尝试过的

代码语言:javascript
复制
function update(){
var j=0;
while(j< <?php echo $i ; ?>){
var id=$("#id" + j);    
var address=$("#address" + j);

$.ajax(
{
url:"update.php",
type:"post",
data:{id:id.val(),address:address.val()},
success:function(response)
{
}
});



}

如有任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-14 17:35:03

您不应该需要循环和执行多个帖子。只需序列化表单数据并将其发送到脚本,例如:

代码语言:javascript
复制
$.ajax({
    url: 'update.php',
    type: 'post',
    data: $('#your-form-id').serialize(), 
    success:function(response){
        // do something
    }
});

此外,您应该考虑修改PHP以防止SQL注入:How can I prevent SQL injection in PHP?。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19364847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档