【问题标题】:Check this with unmarked checkbox if勾选未标记的复选框,如果
【发布时间】:2016-04-26 12:38:59
【问题描述】:

我正在使用 PHP 和 AJAX 进行插入。这是代码:

<input type='checkbox' id="moralibro" name="moralibro" value="mora">  
<script type="text/javascript">  
$(document).ready(function() {  
    $('.error').hide();  
    $(".eliminarp").click(function() {  
        //Obtenemos el valor del campo mora  
        var moralibro = $("input#moralibro").val();  
        //Construimos la variable que se guardará en el data del Ajax para pasar al archivo php que procesará los datos  
            var parent = $(this).parent().attr('id');  
        var service = $(this).parent().attr('data');  
        var dataString = 'id='+service + '&moralibro=' + moralibro ;  
        $.ajax({  
            type: "POST",  
            url: "eliminarprestamo.php",  
            data: dataString,  
            success: function() {              
                $('#delete-ok').empty();  
                $('#delete-ok').append('<div class="correcto">El prestamo se a eliminado correctamente a id='+service+'.</div>').fadeIn("slow");  
                $('#'+parent).fadeOut("slow");  
                //$('#'+parent).remove();  
            }  
        });  
    $('#categoria-registrar')[0].reset();  
        return false;  
    });  
});  
</script>  

这是插入eliminarprestamo.php的文件

if (isset($_POST['moralibro']))  
{  
 $query = "INSERT INTO multas_estudiante(cedula_estudiante)   
  VALUES ('12345')";  
  $result = pg_query($query) or die('ERROR AL INSERTAR DATOS: ' . pg_last_error());  
}  

我已经尝试过if (isset ($ _ POST ['moralibro'])),但仍然使插入未选中复选框,if ($ _ POST ['moralibro']! = "") 也是如此

不多说了,是不是在某些AJAX中受影响?

【问题讨论】:

  • 那么$_POST['moralibro'] 的值是多少? (在 php 脚本中)
  • 您可以尝试:if(isset($_POST['moralibro']) &amp;&amp; !empty($_POST['moralibro'])) 检查该值是否实际通过。如果未选中,复选框可能会以空值传递,这将使isset() =&gt; true
  • if (isset($_POST['moralibro']) &amp;&amp; $_POST['moralibro'] == "mora") {/*...*/}

标签: php ajax checkbox


【解决方案1】:

$_POST['moralibro'] 将始终设置,因为如果没有值,它将是 "" 或空白字符串。

改变这个:

if(isset($_POST['moralibro']))

到这里:

if(!empty($_POST['moralibro']))

还有。我注意到您的 input 的静态值为 "mora" 。如果此值始终存在而没有被删除,则插入将始终发生。插入需要什么条件?


更新:

既然你说条件取决于复选框是否被选中,那么你需要在前端编码,因为你正在发送一个 AJAX 调用。

这样做的方法是这样的:

var moralibro = "";
var $m_input = $("input#moralibro");
if ($m_input.is(":checked")) {
    moralibro = $m_input.val();
}
var dataString = 'id='+service + '&moralibro=' + moralibro ;

完成此操作后,您将向 PHP 发送一个空白字符串或 "mora",然后应该能够被 empty() 接收

【讨论】:

  • 条件是,如果没有选中复选框,则不会插入,但如果你飞了,如果包含完成
  • 并探测,删除“value=”之类的,一直执行插入
  • 查看我的更新答案(您可能需要刷新页面)
  • 非常感谢,我工作得很好,Gracias!!
  • 太棒了。我很高兴我能提供帮助:)
猜你喜欢
  • 1970-01-01
  • 2022-11-14
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 2013-09-01
  • 1970-01-01
相关资源
最近更新 更多