使用ajax中的javascript和php编辑表中的数据
我是PHP和Javascript的初学者,我使用了一个实时的可编辑表,我正在尝试编辑它们,然后将它们保存到mysql的另一个页面中。我这样做了,但我不知道如何使用使用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').
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”使列不可见;