Javascript ajax php中单选按钮的未定义索引值

Javascript ajax php中单选按钮的未定义索引值,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我遇到了一个问题,就是如何获取使用ajax传递给数据的单选按钮的值。请帮我找出我遇到的问题。以下是我的代码: HTML AJAX <form method="post" id="upload_form"> <input type="radio" id="kindOfFile" name="kindOfFile" value="download" checked />Download <input type="radio" id="kindOfFile

我遇到了一个问题,就是如何获取使用ajax传递给数据的单选按钮的值。请帮我找出我遇到的问题。以下是我的代码:

HTML AJAX

<form method="post" id="upload_form">  
   <input type="radio" id="kindOfFile" name="kindOfFile" value="download" checked />Download
   <input type="radio" id="kindOfFile" name="kindOfFile" value="upload"/>Upload
   <input type="submit" class="btn btn-info btn-lg">Upload Files</button>                     
</form>                 
<div id="val"></div>

<script>  
 $(document).ready(function(){   
      $('#upload_form').on('submit', function(e){  
        e.preventDefault();  
        //var formData = new FormData(this);
        var radioVal = $('input[type="radio"]:checked').val(); 

        $.ajax({  
            url :"processUpload.php",  
            method:"POST",
            data: { 'kindOfFile' : radioVal },  
            contentType:false,  
            processData:false,  
            success:function(data){  
                alert(data);
                $("#val").html(data);
            }  
        });
        return false;
      });  
 });  
 </script>

将类名添加到所有无线电输入:

 <input type="radio" class="radioInputsClass" id="kindOfFile" name="kindOfFile" value="download" checked />Download
<input type="radio" class="radioInputsClass" id="kindOfFile" name="kindOfFile" value="upload"/>Upload
更新:

然后,将AJAX中的数据更改为:

data: JSON.stringify({'kindOfFile' : radioVal})
并加上:

dataType: "json",
contentType: 'application/json'
到您的ajax调用

最后,在php中获得如下值:

$data = $_POST['data'];
$arr = json_decode($data, true);
然后,您可以访问以下值:

print_r($arr['kindOfFile']); die();

如果将contentType和processData设置为false,则必须使用
FormData
。而且
method
不是
ajax
的一部分,如果要设置send method,请使用
type

<script>  
 $(document).ready(function(){   
      $('#upload_form').on('submit', function(e){  
        e.preventDefault();  
        var formData = new FormData($(this)[0]);

        $.ajax({  
            url :"processUpload.php",  
            type:"POST",
            data: formData,  
            contentType:false,  
            processData:false,  
            success:function(data){  
                alert(data);
                $("#val").html(data);
            }  
        });
        return false;
      });  
 });  
 </script>

$(文档).ready(函数(){
$('upload_form')。在('submit',函数(e){
e、 预防默认值();
var formData=新formData($(此)[0]);
$.ajax({
url:“processUpload.php”,
类型:“POST”,
数据:formData,
contentType:false,
processData:false,
成功:函数(数据){
警报(数据);
$(“#val”).html(数据);
}  
});
返回false;
});  
});  

@Janine Laude在jquery中,它们是从
中获取数据的不同方法,这里仅介绍其中的一些方法

首先,您在
内使用
单选按钮。
下面是发送数据的不同方法

HTML代码:

<div class="container">
    <form method="post" id="upload_form">  
       <input type="radio" id="kindOfFile" name="kindOfFile" value="download" checked />Download
       <input type="radio" id="kindOfFile" name="kindOfFile" value="upload"/>Upload
       <input type="submit" class="btn btn-info btn-lg">Upload Files</button>                     
    </form>                 
    <div id="val"></div>
</div>
JQUERY脚本使用
FORM-DATA
发送数据并接收
JSON

 <script>  
 $(document).ready(function(){   
      $('#upload_form').on('submit', function(e){  
        e.preventDefault();  
        var formData = new FormData(this);

        $.ajax({  
            url :"processUpload.php",  
            method:"POST",
            data: formData,  
            contentType:false,  
            processData:false,  
            success:function(res){  
                var result = JSON.parse(res);
                //console.log(result.data);
                $("#val").html(result.data);
            }   
        });
        return false;
      });  
 });  
 </script>
$('#upload_form').on('submit', function(e){  
    e.preventDefault();  
    var formSerialize = $(this).serialize();
    alert(formSerialize);
    $.ajax({  
        url :"processUpload.php",  
        method:"POST",
        data: formSerialize,   
        success:function(res){  
            var result = JSON.parse(res);
            //console.log(result.data);
            $("#val").html(result.data);
        }   
    });
    return false;
  }); 

需要更多信息,错误发生在哪里?您收到的具体错误消息是什么?从PHP7开始,您也可以这样做:
$kindOfFile=$\u POST['kindOfFile']特别是我从PHP中得到了一个错误,因为我认为来自AJAX的数据值没有价值。但是当我向radioVal发出警报时,有一个值,但是当我在成功内部发出警报并向数据发出警报时,我从PHP中得到了一个错误。未定义的kindOfFilestill索引我从php获得了未定义的索引
    <?php
    $kindOfFile = $_POST['kindOfFile'];

    //YOU CAN CREAT A ARRAY AND SEND THORUGH JSON
    $Arr = array(
        'data'=>$kindOfFile,
    );

    //YOU CAN SEND THORUGH ARRAY
    // OR
    // YOU CAN JUST echo json_encode($kindOfFile);
    echo json_encode($Arr); //THIS IS PREFERED WHEN ARRAY WITH MORE INDEX TO BE SENT BACK
?>  
 <script>  
 $(document).ready(function(){   
      $('#upload_form').on('submit', function(e){  
        e.preventDefault();  
        var formData = new FormData(this);

        $.ajax({  
            url :"processUpload.php",  
            method:"POST",
            data: formData,  
            contentType:false,  
            processData:false,  
            success:function(res){  
                var result = JSON.parse(res);
                //console.log(result.data);
                $("#val").html(result.data);
            }   
        });
        return false;
      });  
 });  
 </script>
$('#upload_form').on('submit', function(e){  
    e.preventDefault();  
    var formSerialize = $(this).serialize();
    alert(formSerialize);
    $.ajax({  
        url :"processUpload.php",  
        method:"POST",
        data: formSerialize,   
        success:function(res){  
            var result = JSON.parse(res);
            //console.log(result.data);
            $("#val").html(result.data);
        }   
    });
    return false;
  });