【问题标题】:how to get radio button, checkbox value in csv using ajax and php?如何使用 ajax 和 php 在 csv 中获取单选按钮、复选框值?
【发布时间】:2016-07-03 21:30:39
【问题描述】:

我有一个表单域和一个提交链接。我正在通过我的 php 代码生成 csv。代码工作正常,但主要问题是我无法选中复选框,csv 中的单选按钮。我正在使用 ajax 和 php。

这是我的html代码

    <div class="form-style" id="contact_form">
        <div id="contact_results"></div>
        <div id="contact_body">

         <input type="radio" id="male" name="gender" required="true" value="Male">
         <label for="male"><span></span>M</label>
         <input type="radio" id="female" name="gender" required="true" value="Female">
         <label for="female"><span></span>F</label>
         <input type="radio" id="<18" name="age" required="true" value="<18">
         <label for="<18"><span></span><18</label>
         <input type="radio" id="18-25" name="age" required="true" value="18-25">
         <label for="18-25"><span></span>18-25</label>

         <input type="checkbox" id="men_fashion" name="Intrest" required="true" value="Men’s Fashion"/>
         <label for="men_fashion"><span></span>Men’s Fashion</label>
         <input type="checkbox" id="women_fashion" name="Intrest" required="true" value="Women’s Fashion"/>
        <label for="women_fashion"><span></span>Women’s Fashion</label>
        <input type="checkbox" id="home_decor" name="Intrest" required="true" value="Home Decor"/>
        <label for="home_decor"><span></span>Home Decor</label>
        <input type="checkbox" id="gaming" name="Intrest" required="true" value="Gaming"/>
        <label for="gaming"><span></span>Gaming</label>
        <input type="checkbox" id="toys" name="Intrest" required="true" value="Toys"/>
        <label for="toys"><span></span>Toys</label>

        <a class="submit"><i class="fa fa-check-circle"></i></a>
        </div>
        </div>

这里是 jquery Ajax

$(document).ready(function() {
    $(".submit").click(function() {        
        var proceed = true;  
        $("#contact_form input[required=true]").each(function(){
            $(this).css('border-color',''); 
            if(!$.trim($(this).val())){ 
                $(this).css('border-color','red'); 
                proceed = false; 
            }
        });

        if(proceed) //everything looks good! proceed...
        {
            //get input field values data to be sent to server
            post_data = {
                'user_name'     : $('input[name=username]').val(), 
                'Gender'    : $('input[name=gender]').val(), 
                'Age'  : $('input[name=age]').val(), 
                'Intrest'  : $('input[name=Intrest').val(), 
                //'subject'       : $('select[name=subject]').val(), 
                //'msg'           : $('textarea[name=message]').val()
            };

            //Ajax post data to server
            $.post('post.php', post_data, function(response){  

            });
        }
    });

    //reset previously set border colors and hide all message on .keyup()
    $("#contact_form  input[required=true]").keyup(function() { 
        $(this).css('border-color',''); 
        $("#result").slideUp();
    });
});

这是我的php代码

<?php
 $cvsData = "";   //Initialize it as empty
if(isset($_POST['Intrest'])) {
    $name = $_POST['Intrest'];
    foreach ($name as $color){
        $cvsData .= $color. " ". " ";      //Append the new color value
    }
}
$user_name = $_POST['user_name'];
$Gender = $_POST['Gender'];
$Age = $_POST['Age'];


if(empty($fn) || empty($ln) || empty($phone)){
$message = 'Fill in areas in red!';
$aClass = 'errorClass';
}

$cvsData .= ",". $user_name. "," . $Age . "," .$Gender .",".  "\n"; //Append the second line here

//Add header here
$exists = true;
if (!is_readable("form.csv")) {
    $exists = false; 
}

$fp = fopen("form.csv","a");
if($fp){
   if (!$exists) { 
       fwrite("This is my awesome header\n"); 
   }
fwrite($fp,$cvsData); 
fclose($fp);
}
?>

请帮帮我。
提前致谢。

【问题讨论】:

  • 您希望 csv 实际包含复选框/单选框,还是希望 1/0、布尔值或字符串值?
  • 您需要更改您的代码并利用form HTML 元素和jquery 的.submit()
  • 要求所有input name=Interest 有什么意义?您要全部检查吗?
  • 嗨@wrxsti 实际上我想要选中复选框字符串值。我可以选择多个复选框。

标签: php jquery ajax csv radio-button


【解决方案1】:

您只需要:checked 选择器。像这样:

'Gender'    : $('input[name=gender]:checked').val(), 

【讨论】:

  • 嗨@VoteyDisciple,这对我来说很好,非常感谢。我还有另一个问题如何获得多个复选框值?
【解决方案2】:

我在 ajax 中做了更改

 'Gender'    : $('input[name=gender]:checked').val(),
 'Intrest':$('input[type="checkbox"]:checked').map(function(){
                 return this.value
            }).get(), 

其余的代码都是一样的

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2017-05-03
    • 2021-12-31
    • 2017-08-22
    • 2013-03-30
    • 2023-04-06
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多