使用输入类型按钮

时间:2016-09-02 12:34:55

标签: javascript php jquery

我有一个带有两个input类型按钮的表单。第一个是编辑,当我点击它时,输入字段将被启用。第二个是保存,当我点击它时,输入字段将被禁用,我应该在mysql数据库中有新值。

除了将值更新到数据库之外,所有这些都可以正常工作。如何使用input类型按钮进行编辑后更新此值?我无法使用提交,因为它会在重新加载页面中导致启用和禁用输入字段时出现问题。

启用和禁用的jquery代码

<script>
     $(document).ready(function(){
         $("form input[type=text],form input[type=checkbox]").prop("disabled",true);
         $("input[name=edit]").on("click",function(){  $(this).closest("tr").find("input[type=text],input[type=checkbox],select").removeAttr("disabled");
         })
         $("input[name=save]").on("click",function(){   $(this).closest("tr").find("input[type=text],input[type=checkbox],select").prop("disabled",true);
     })
    </script>

/ ********************************************** * /

<form name='' id='' action='' method='post'>
<input type='text' name='txt_category' id='category' value='$category' disabled>
<input type='text' name='txt_stage' id='stage' value='$stage' disabled>
<input type='checkbox' name='txt_approve' id='approve' value='$approve' disabled>
<input type='button' name='edit' value='edit'>
<input type='button' name='save' id='save' value='save'>
</form>

<?php
ob_start();
include("../includes/connect.php");
$id=$_POST['txt_id'];
$stage=$_POST['txt_stage'];
$category=$_POST['txt_category'];
$priority=$_POST['txt_priority'];
$frequency=$_POST['txt_frequency'];
$notapprove=$_POST['txt_notapprove'];
$approve=$_POST['txt_approve'];
$notexist=$_POST['txt_notexist'];
$wo=$_POST['txt_wo'];
$duration=$_POST['duration'];
$startdate=$_POST['startdate'];
$enddate=$_POST['enddate'];
$asd=$_POST['txt_asd'];
$add=$_POST['txt_add'];
$aduration=$_POST['txt_aduration'];
$transferredto=$_POST['txt_transferredto'];
$prb=$_POST['txt_percentage'];
$note=$_POST['txt_note'];
$projectname=$_POST['txt_projectname'];
if($notapprove==""){$notapprove="False";}else{$notapprove="True";}
if($approve==""){$approve="False";}else{$approve="True";}
if($notexist==""){$notexist="False";}else{$notexist="True";}
$sql=mysqli_query($conn,"update tbl_checklist set db_category='$category',db_stage='$stage',db_priority='$priority',db_frequency='$frequency',db_notapprove='$notapprove',db_wo='$wo',db_asd='$asd',db_add='$add',db_aduration='$aduration',db_transferredto='$transferredto',db_percentage='$prb',db_note='$note',db_approve='$approve',db_notexist='$notexist' where db_id='$id'")or die(mysqli_error($conn));
//header("location:checklist.php?msg=1&s=$projectname");
ob_end_flush();
?>

2 个答案:

答案 0 :(得分:0)

要更新数据库,您必须在服务器端执行此操作。如果您不想重新加载页面,请使用Ajax。如果你正在使用JQuery,你可以看到一个关于JQuery Ajax的好documentation。这很简单。

答案 1 :(得分:0)

您可以使用以下ajax方法更新数据而无需重新加载页面。

根据您所要求的请求类型,此数据将包含在$ _GET或$ _POST全局变量中。下面是一个简单的例子

$.ajax({                    
  url: 'content/get.php',     
  type: 'post', // performing a POST request
  data : {
    data1 : 'value' // will be accessible in $_POST['data1']
  },
  dataType: 'json',                   
  success: function(data)         
  {
    // etc...
  } 
});