使用ajax中的javascript和php编辑表中的数据

使用ajax中的javascript和php编辑表中的数据,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我是PHP和Javascript的初学者,我使用了一个实时的可编辑表,我正在尝试编辑它们,然后将它们保存到mysql的另一个页面中。我这样做了,但我不知道如何使用id在mysql中检索到编辑的位置。请有人帮忙!我的要求错了吗?它在数据库中不会像在页面的表中那样更改。我发送的数据如下: function postedit() { var _type = $('#typeid').val(); var _pression = $('#pressionid').

我是PHP和Javascript的初学者,我使用了一个实时的可编辑表,我正在尝试编辑它们,然后将它们保存到mysql的另一个页面中。我这样做了,但我不知道如何使用
id
在mysql中检索到编辑的位置。请有人帮忙!我的要求错了吗?它在数据库中不会像在页面的表中那样更改。我发送的数据如下:

function postedit()
    {
        var _type = $('#typeid').val();
        var _pression = $('#pressionid').val();   
        var _code = $('input[name="code"]').val();
        var _designiation = $('input[name="designiation"]').val();
        var _diametre = $('input[name="diametre"]').val();
        var _epaisseur = $('input[name="epaisseur"]').val();
        var _prix = $('input[name="prix"]').val();
        var _etat = $('input[name="etat"]').val();

        $.post('update.php', {
            posttype: _type,
            postpression: _pression,
            postcode: _code,
            postdesigniation: _designiation,
            postdiametre: _diametre,
            postepaisseur: _epaisseur,
            postprix:_prix,
            postetat:_etat
        },
        function(data){
            $('tbody').append(data);
        });
    }

var _trEdit = null;

$(document).on('click', '.btn-edit',function(){
    _trEdit = $(this).closest('tr');
    var _code = $(_trEdit).find('td:eq(0)').text();
    var _designiation = $(_trEdit).find('td:eq(1)').text();
    var _diametre = $(_trEdit).find('td:eq(2)').text();
    var _epaisseur = $(_trEdit).find('td:eq(3)').text();
    var _prix = $(_trEdit).find('td:eq(4)').text();
    var _etat = $(_trEdit).find('td:eq(5)').text();

    $('input[name="code"]').val(_code);
    $('input[name="designiation"]').val(_designiation);
    $('input[name="diametre"]').val(_diametre);
    $('input[name="epaisseur"]').val(_epaisseur);
    $('input[name="prix"]').val(_prix);
    $('input[name="etat"]').val(_etat);
});

$('#btn-update').click(function(){
    if(_trEdit){
        var _code = $('input[name="code"]').val();
        var _designiation = $('input[name="designiation"]').val();
        var _diametre = $('input[name="diametre"]').val();
        var _epaisseur = $('input[name="epaisseur"]').val();
        var _prix = $('input[name="prix"]').val();
        var _etat = $('input[name="etat"]').val();

        $(_trEdit).find('td:eq(0)').text(_code);
        $(_trEdit).find('td:eq(1)').text(_designiation);
        $(_trEdit).find('td:eq(2)').text(_diametre);
        $(_trEdit).find('td:eq(3)').text(_epaisseur);
        $(_trEdit).find('td:eq(4)').text(_prix);
        $(_trEdit).find('td:eq(5)').text(_etat);

        alert("Ligne Modifier avec succée !");
        _trEdit = null;
    }
});
我的sql请求在一个文件
update.php
中,就像这样,我想如果我从数据库中获取
id
,并从中搜索,这看起来很愚蠢,但我绝望了:

$type_utilisation = $_POST['posttype'];
$pression_tube = $_POST['postpression'];
$code_tube = $_POST['postcode'];
$designiation_tube = $_POST['postdesigniation'];
$diametre_tube = $_POST['postdiametre'];
$epaisseur_tube = $_POST['postepaisseur'];                       
$prix_tube = $_POST['postprix'];
$etat_tube = $_POST['postetat'];
$id_req = ("select id from $pression_tube where      typepehd='".$type_utilisation."' && code='".$code_tube."'");
$id_tube=$id_req;
echo"$id_tube";

if(isset($pression_tube)){
    if($pression_tube=="pn4"){
        if($type_utilisation=="pehdtelecom" && $pression_tube=="pn4" ){
            echo "verifier le type du Tube S.v.p";
        } else {
            $sql="UPDATE  pn4 SET    typepehd='".$type_utilisation."',code='".$code_tube."',designiation='".$designiation_tube."',diametre='".$diametre_tube."',epaisseur='".$epaisseur_tube."',prix='".$prix_tube."',etat='".$etat_tube."' where id='".$id_tube."'";      

            $result = mysqli_query($link, $sql);

            if($result){
            } else {
                echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
            }
        }
    }

谢谢,我确实用id解决了这个问题,因为它是唯一的

 $id_tube = $_POST['postid']; 
通过在“隐藏类型”中向其添加输入 并通过

 style="display;none";

谢谢,我确实用id解决了这个问题,因为它是唯一的

 $id_tube = $_POST['postid']; 
通过在“隐藏类型”中向其添加输入 并通过

 style="display;none";

首先,在您的
JavaScript
中,您在哪里调用
postedit()
?然后你的
php
代码中有很多问题。您正在将字符串(查询)分配给
$id\u req
,但从未运行
查询。这就是为什么在
$id\u tube
(选择查询)中使用
string
,而不是实际的
id
字段。为什么使用
$pression\u tube
作为表名?为什么不在
select
查询中使用表名(我假设是pn4!)?最后,您的代码将打开到
sql注入
。请使用
prepared statement
修复它。谢谢,但我正在尝试找到一个解决方案如何重新获取行的id以将id放在靠近更新行的位置,除了从数据库中选择它之外,还有其他解决方案吗?您正在更新的同一个表上进行选择。因此不需要两个查询。您只需使用select查询的条件更新表即可!类似这样:
“更新pn4集(您的字段和它们的值…),其中typehd=”“$type\u利用率。”“和code=”“$code\u tube。”“
将编辑的数据发送到php文件,以便检索到的值是输入的最新值,这样它就不会在where子句中找到它们。这就是我试图找到id的原因。还有其他解决方案吗?请相信我,我确实通过使用id解决了这个问题,因为它唯一的$id_tube=$\u POST['postid'];通过在type hidden中添加输入,并通过style=“display;none”使列不可见;首先,在您的
JavaScript
中,您在哪里调用
postedit()
?然后你的
php
代码中有很多问题。您正在将字符串(查询)分配给
$id\u req
,但从未运行
查询。这就是为什么在
$id\u tube
(选择查询)中使用
string
,而不是实际的
id
字段。为什么使用
$pression\u tube
作为表名?为什么不在
select
查询中使用表名(我假设是pn4!)?最后,您的代码将打开到
sql注入
。请使用
prepared statement
修复它。谢谢,但我正在尝试找到一个解决方案如何重新获取行的id以将id放在靠近更新行的位置,除了从数据库中选择它之外,还有其他解决方案吗?您正在更新的同一个表上进行选择。因此不需要两个查询。您只需使用select查询的条件更新表即可!类似这样:
“更新pn4集(您的字段和它们的值…),其中typehd=”“$type\u利用率。”“和code=”“$code\u tube。”“
将编辑的数据发送到php文件,以便检索到的值是输入的最新值,这样它就不会在where子句中找到它们。这就是我试图找到id的原因。还有其他解决方案吗?请相信我,我确实通过使用id解决了这个问题,因为它唯一的$id_tube=$\u POST['postid'];通过在type hidden中添加输入,并通过style=“display;none”使列不可见;