仅在选中复选框时才显示文本框,如果未选中,则不将字段保存在数据库中

时间:2018-01-26 14:16:35

标签: javascript php jquery html mysql

对不起英语语法,不是我的母语。

我想仅在选中复选框时才显示文本框。所以,我有这个代码:

HTML

<table>
    <tr>
        <td>
            <input type = "checkbox" id="NCFtxt" onclick="obtenerNCF()"> Marcar casilla para generar Comprobante Fiscal
         </td>
    </tr>
    <tr>
        <td>
            NCF: <input readonly="readonly" name= "txtNCF" type= "text" id= "txtNCF" value= "<?php echo $cobro->ncf; echo $ncf; ?>" />
        </td>
    </tr>
</table>  

JAVASCRIPT

<script language="javascript">
$("#txtNCF").hide();

function obtenerNCF() { 
  var chequear = document.getElementById("NCFtxt");    

  if (chequear.checked == true){
  $("#txtNCF").show();

  } else {
    $("#txtNCF").hide();
  }
}
</script>

因此,这是&#34; working&#34;,在选中复选框时隐藏字段,但仍然将数据保存在数据库中。我怎么能不仅隐藏字段,而且既不保存在数据库中?我尝试了一些但没有工作的东西,这看起来很简单,但让我感到困惑

1 个答案:

答案 0 :(得分:1)

如果您不想根据复选框保存某些内容...如果复选框有值,请查看$ _POST(如果没有,则不检查)。然后保存或不保存额外的数据。

给复选框命名和值:

<input type="checkbox" name="NCFtxt_checkbox" value="1" id="NCFtxt" onclick="obtenerNCF()">

在PHP中寻找它:

if ( empty($_POST['NCFtxt_checkbox']) ) {
    // dont save extra data 
} else {
    // else do save the extra data
}

第二个解决方案是使用大量的javascript,当复选框被UN检查时,在隐藏它时清除其他文本框的内容。这样就可以提交&#39; emtpy&#39;开头。