【问题标题】:How to check if span od xheckbox is checked in php?如何检查是否在php中选中了复选框的范围?
【发布时间】:2019-10-24 18:49:13
【问题描述】:

我有发送电子邮件的 html 表单、javascript ajax 代码和 php 代码。

我有一个问题。

我的复选框是用 span 制作的(参见代码)。如何检查这个带类复选标记的跨度是否被选中。

我的html:

<form id="obrazec" class="form-inline">     
    <input  class="okno" type="email" id="email" placeholder="Email" name="email" required>

    <input type="checkbox" id="trgovina" value="" name="trgovina">Spletna trgovina <span class="checkmark"></span>

    <input type="checkbox" id="oglasevanje" value="" name="oglasevanje">Oglaševanje <span class="checkmark"></span>

    <input type="checkbox" id="trgovina" value="" name="strani">Spletna stran <span class="checkmark"></span>

    <div class="submitdiv">
        <button class="submit" id="potrdi" type="button" onclick>POŠLJI</button>
    </div>
</form>

我的javascript:

<script type="text/javascript">


$(document).ready(function(){

    $("button#potrdi").click(function(){
        event.preventDefault(); 
        var formData = $('#my_form').serialize();


        var email = $("#email").val();






        var boolMAIL = email.includes("@");
        var dataString = 'email=' + email;




        if(boolMAIL == true ){
        $.ajax({
            url:"action_page.php", 
            type: "POST",
            data: dataString, 
            success:function(result){

               $( ".response" ).show();
                              $( ".response2" ).hide();

               $( "#obrazec" ).hide();
            $( ".prijavatext" ).hide();

            }

        });
        }
        else
        {
               $( ".response2" ).show();


        }
    });


});


</script>

我的 php:

 $email = $_POST['email'];


    $visitor_email = $_POST['email'];

    $email_from = 'test@test.si';
    $email_subject = "Novo povprasevanje";
    $email_body = "Novo povprasevanje: 
   $email.\n ".




    $headers = "From: $email_from \r\n";
    $headers .= "Reply-To: $visitor_email \r\n";                      
    $to = "test@test.com";
    mail($to,$email_subject,$email_body,$headers);


    ?>

它工作正常(电子邮件),我收到邮件,但我不知道如何检查复选框是否被选中,因为它实际上不是复选框而是字段:

<span class="checkmark"></span>

【问题讨论】:

  • 您的复选框有names 和ids。
  • 如果我添加: $trgovina = isset($_POST['trgovina']) ? 1:0;到 php 和
  • var trgovina = $("#trgovina").val();和 .... + '&trgovina=' + trgovina;到 javacript 我总是得到 1
  • 不要在 cmets 中编写代码。 更新你的问题。

标签: javascript php html ajax


【解决方案1】:

要使用 Jquery 获取特定属性的值,您需要使用 .prop() 方法。 由于您想知道是否选中了复选框,因此相关属性已选中

var trgovina = $("#trgovina").prop("checked");
console.log(trgovina);

【讨论】:

    【解决方案2】:

    由于您已经使用jquery,您可以使用serialize() 方法从表单(except 按钮/type=submit)中获取所有字段(并且您的代码中已经有此方法)。您的 javascript 将如下所示:

    $("button#potrdi").click(function(){
        event.preventDefault(); 
        var email = $("#email").val();
        var boolMAIL = email.includes("@");
    
        if(boolMAIL == true ){
            $.ajax({
                url:"action_page.php", 
                type: "POST",
                data: $('#obrazec').serialize(), 
                success:function(result){
    
                   $( ".response" ).show();
                   $( ".response2" ).hide();
    
                   $( "#obrazec" ).hide();
                $( ".prijavatext" ).hide();
    
                }
            });
        }
    

    在服务器端,您的 checked 复选框将通过其name 属性可用,例如$_POST['trgovina']。并且 not checked 复选框不会出现在 POST 数组中。

    【讨论】:

      猜你喜欢
      • 2014-02-17
      • 1970-01-01
      • 2013-12-25
      • 2010-10-28
      相关资源
      最近更新 更多