实时更新表条目到数据库SQL PDO AJAX

时间:2016-06-03 18:57:48

标签: php mysql ajax html5 pdo

我尝试在主页上制作一个可编辑的表格,在您离开“字段”后按下输入后会自动保存新条目,但有些东西不起作用。 在我想将新的entrie保存到数据库之前,Everthing很好。 我解雇了PDO-SQL-Statment并且它有效。

对我而言,似乎table_edit_ajax.php不起作用,但我不知道为什么!

希望你们中的一些人可以帮助我吗?

我正在使用普通的mysql数据库

Homepagecode:

<Table>

 $getIDBusinessRessources = $dbPDO->geteditableSingleBusinessRessoure();


   foreach($getIDBusinessRessources as $getidBusiness){
   $id =    $getidBusiness['checkid'] ;


       echo '<tr id="'
            . $getidBusiness['checkid']
            . '" '
            . 'class="edit_tr"'
            . '>';

       // Spalte Ressourcenname
       echo  '<td class="edit_td">'
            .'<span id="RessourceName_'
            .$getidBusiness['checkid']
            . '" '
            . 'class="text">'
            .$getidBusiness['Rn']
            .'</span>'
            .'<input type="text" value="'
            .$getidBusiness['Rn'] 
            . '" class="editbox" id="Ressourcname_Input_'
            . $getidBusiness['checkid']
            .'">'   
            .'</td>';

       // Spalte Amount    
       echo  '<td class="edit_td">'
            .'<span id="Amount_'
            .$getidBusiness['checkid']
            . '" '
            . 'class="text">'
            .$getidBusiness['AM']
            .'</span>'
            .'<input type="text" value="'
            .$getidBusiness['AM'] 
            . '" class="editbox" id="Amount_Input_'
            . $getidBusiness['checkid']
            .'" '
            .'</td>';
</tr>
</table>

JS:

$( document ).ready(function() {

$(".edit_tr").click(function()
{
var ID=$(this).attr('id');
$("#RessourceName_"+ID).hide();
$("#Amount_"+ID).hide();
$("#Ressourcname_Input_"+ID).show();
$("#Amount_Input_"+ID).show();
}).change(function()
{
var ID=$(this).attr('id');
var first=$("#Ressourcname_Input_"+ID).val();
var last=$("#Amount_Input_"+ID).val();
var dataString = 'id='+ ID +'&RessourceName='+first+'&Amount='+last;
$("#RessourceName_"+ID).html('<img src="img/bearbeiten.png" />'); // Loading image

if(first.length>0&& last.length>0)
{

$.ajax({
type: "POST",
url: "table_edit_ajax.php",
data: dataString,
cache: false,
success: function(html)
{
$("#RessourceName_"+ID).html(first);
$("#Amount_"+ID).html(last);
}
});
}
else
{
alert('Enter something.');
}

});

// Edit input box click action
$(".editbox").mouseup(function() 
{
return false
});

// Outside click action
$(document).mouseup(function()
{
$(".editbox").hide();
$(".text").show();
});

Ajax代码:

<?php

    include "DBconnection.php";

    if($_POST['id']){

    $id                 = $_POST['checkid'];
    $RessourceName      = $_POST['Rn'];
    $Amount             = $_POST['AM'];
    $dbPDO->UpdateLiveTableEntries($id,$RessourceName, $Amount );


    }
    ?>

至少是DB-Update代码

function UpdateLiveTableEntries($id ,$Ressourcename, $Amount ){

      // echo '<script type="text/javascript"> alert("inside");</script>';
       $stmt = self::$_db->prepare("UPDATE BalancesheetInput SET RessourceName =:ressname , Amount =:menge WHERE ID =:id");
       $stmt->bindParam(":id", $id);
       $stmt->bindParam(":ressname", $Ressourcename);
       $stmt->bindParam(":menge", $Amount);

       $stmt->execute();




   }

1 个答案:

答案 0 :(得分:1)

如果您要发送此信息:

var dataString = 'id='+ ID +'&RessourceName='+first+'&Amount='+last;
                  ^^          ^^^^^^^^^^^^^           ^^^^^^

你为什么要找这些?

$id                 = $_POST['checkid'];
                               ^^^^^---you aren't sending a 'checkid'
$RessourceName      = $_POST['Rn'];
                              ^-- you aren't sending an 'Rn'
$Amount             = $_POST['AM'];
                              ^^-- you aren't sending an 'AM'