簡體   English   中英

使用jQuery AJAX更新mysql表

[英]Using jQuery AJAX to update table of mysql

我使用jQuery AJAX更新表格。 但是AJAX只適用於第一次,其他請求都消失了。

JavaScript的

function uploadItems(data, step, savetype) {                                                                                                                    
            data.append('step', step);                                                                                                                                                      data.append('savetype', savetype);                                                                                                                           
            data.append('new_store_id', store_id);                                                                                                                       

            $.ajax({                                                                                                                                                     
                url: "order_store_edit.php?store_id="+store_id,                                                                                                          
                type: "POST",                                                                                                                                            
                data: data,                                                                                                                                              
                contentType: false,                                                                                                                                      
                processData: false,                                                                                                                                      
                async: true                                                                                                                                              
            })                                                                                                                                                           
            .done(function(data)                                                                                                                                         
            {                                                                                                                                                            
                console.log(data);                                                                                                                                       
            })
            .fail(function(xhr, text_status, errorThrown)                                                                                                                
            {                                                                                                                                                            
                return false;                                                                                                                                            
            });                                                                                                                                                          
}

PHP

foreach ($set_item_arr as $i => $value) {                                                                                                                            
        order_item_up($item[$i]['item_id'], $value);                                                                                                                     
        echo $item[$i]['item_id'] . ' : ' . $value['disable'] . "\n";                                                                                                    
}

MySQL的

function order_item_up($item_id, $set_arr)                                                                                                                                   
{                                                                                                                                                                            
    if (! isset($item_id)) {                                                                                                                                                 
        echo 'no id';                                                                                                                                                        
        return;                                                                                                                                                              
    }                                                                                                                                                                        
    global $db;                                                                                                                                                              
    $sql = 'UPDATE tablename SET ';                                                                                                                                
    foreach ($set_arr as $key => $val) {                                                                                                                                     
        $sql .= $key."='".$val."', ";                                                                                                                                        
    }                                                                                                                                                                        
    $sql = substr($sql, 0, -2);                                                                                                                                              
    $sql .= " WHERE item_id = '$item_id'";                                                                                                                                   
    return $db->execute($sql);                                                                                                                                               
}

例如,我有二十個表單,然后將其中十個附加到一個FormData中,然后調用uploadItems。 因此它將發送兩次,但更新查詢僅在第一次使用。

沒有錯誤消息顯示在控制台上,在瀏覽器中也沒有。

此問題的可能原因是什么?

編輯:

有可能由表級鎖定引起嗎? 我的引擎是MyISAM。

編輯:編輯SQL查詢的結果

XHR finished loading: 
983 : 1 
984 : 1 
985 : 1 
986 : 1 
987 : 1 
988 : 1
989 : 1 
990 : 1 
991 : 1 
992 : 1

XHR finished loading:  
no id : 1 
no id : 1

如前所述,第二個XHR無法更新數據庫。


解決了

我發現了問題...我應該使用item_id而不是數組的索引,因為更新數據庫后數組的大小會有所不同。

function order_item_up($item_id, $set_arr)                                                                                                                                   
{    
    foreach ($set_arr as $key => $val) 
    {         
        $qry1="UPDATE tablename SET". $key."='".$val."' where $item_id='".$item_id."'";
        $re=mysql_query($qry1)or die(mysql_error());
    }
}   

使用此更新部分的行數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM