Javascript ajax php中单选按钮的未定义索引值
我遇到了一个问题,就是如何获取使用ajax传递给数据的单选按钮的值。请帮我找出我遇到的问题。以下是我的代码: HTML AJAXJavascript 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
<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;
});