繁体   English   中英

当按下按钮时,PHP更新数据库中文本输入的值

[英]PHP Update the value of text input in database when a button is pressed

我将解释到目前为止我已经实现的内容:-这是数据库中的表,即adhar_card。 有关结构,请参见下图:-(Adhard_card_id是主键)

在此处输入图片说明

当我们单击验证按钮时,在adhar_card表中,“状态”字段将更改为2。 类似地,当我们单击拒绝按钮时,状态将更改为5。我的代码中唯一缺少的部分是输入字段的功能(有效期)。 用户应该能够输入到期日期,并且当他们按下验证按钮时。.状态应该在DB(Adharcard)(已隐含)中更改为2,并将输入值填写到DB(Adharcard)中的“ expiry_Date”字段(不是实施)。 我怎么解决这个问题 。? 此代码可能会导致sql注入或此代码可能易受攻击,但是由于我们仅将此代码用于localhost ..我认为这不是问题,我们将在将其上传到server时查看该漏洞。 DB.Status列中要更新的输入值正在更新,但输入列未更新。

这是HTML部件(包含输入文本字段和验证按钮):-

 <div class="form-group">
   <div class="input-group">
      <div class="form-line">
         <input type="text" class="form-control date" id="expiry_date" placeholder="Add Aadhar Number ">
      </div>
   </div>
   <button id="adhar_card_button" type="button"   class="btn btn-primary btn-lg text-center">sdasd</button>
</div>

这是激活函数(当按下按钮时它调用ajax请求):-(当我们警告expiry_date正在获取在输入框中输入的值时)

function activate(tablename,idName,idValue,expiry_date){
var expiry_date = $("#expiry_date").val();
if(expiry_date != null && expiry_date != ""){
$.ajax({    
type: 'POST',  
url: 'verify_single_doc.php',   
dataType: 'JSON' ,
data: {"tablename":tablename,"idName":idName,"idValue":idValue,expiry_date:"expiry_date"},  
success: function(response)  
{ 
if(response.error == false){
//alert('in');
alert(expiry_date);
$("#"+response.tablename+"_button").html('Reject.');
$("#"+response.tablename+"_button").attr("class","btn btn-danger");
$("#"+response.tablename+"_button").attr("onclick","deactivate("+response.tablename+","+response.idName+","+response.idValue+")");
}
}
});  
}
}

PHP代码来更新值(此处将状态更新为2,但不更新到期日期值):-

<?php

require('connect.php');
$res = array();
if( $_REQUEST['tablename'] != null  &&
    $_REQUEST['idName'] != null  &&
    $_REQUEST['idValue'] != null &&
    $_REQUEST['expiry_date'] !=null 

){

        $tablename = $_REQUEST['tablename'] ;
        $idName = $_REQUEST['idName'] ;
        $idValue = $_REQUEST['idValue'] ;
        $expiry_date = $_REQUEST['expiry_date'];    

        if (mysqli_query($conn,"UPDATE $tablename SET status = 2 , expiry_date = $expiry_date WHERE $idName = $idValue" ) ){

                $res['error'] = false;
                $res['message'] = "Verified.";
                $res['tablename'] = $tablename;
                $res['idName'] = $idName;
                $res['idValue'] = $idValue;
                $res['expiry_date'] = $expiry_date;
        }else{
            $res['error'] = true;
            $res['message'] = "Try again later.";
        } 
}else{
$res['error'] = true;
$res['message'] = "Fields are missing.";
}

echo json_encode($res);


?>

由于到期日期将是日期字段,因此您需要更新''值。 因此,如下更改您的查询,然后尝试更新日期。

mysqli_query($conn,"UPDATE $tablename SET status = 2 , expiry_date = '$expiry_date' WHERE $idName = $idValue" );

同样,在您的jS到期日期中有误。 将数据更改为

data: {"tablename":tablename,"idName":idName,"idValue":idValue,"expiry_date":expiry_date},

当您的代码已经可以使用时..在下一行中, expiry_date只是一个问题, expiry_date使用"expiry_date":expiry_date而不是expiry_date:"expiry_date"

data: {"tablename":tablename,"idName":idName,"idValue":idValue,"expiry_date":expiry_date},

我在这里需要提及的其他内容..我不相信ajax成功函数可以从php中读取true或false。因此,您可能需要使用$res['error'] = "false"; 并在js if(response.error == "false"){与true相同的事物

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM