【发布时间】:2019-09-05 03:50:58
【问题描述】:
我有以下脚本尝试将所有表单数据发送到login_processor.php 文件。
<script>
$( document ).ready(function() {
$("#submit").click(function(){
var name = $("#name").val();
var email = $("#email").val();
var FD = new FormData($("#main");
if(name=="" || email==""){
$("#display").html("Please fill all fields");
}else{
$.ajax({
type: "POST",
url: "login_processor.php",
processData: false,
contentType: false,
data: FD,
success: function(result){
$("#display").html(result);
$("#display").fadeTo(2000, 500).slideUp(500, function(){
$("#display").slideUp(500);
});
}
});
}
return false;
});
});
</script>
我的表单有很多文本输入、下拉菜单、复选框数组等。如何将所有表单值添加到我的 php 文件中?例如,文本框值、选定的下拉值、选定的复选框值等。使用上面的代码,它不起作用。我不确定我做错了什么。有人可以帮忙吗?
编辑 1
发现问题是由于缺少)。但它仍然没有捕获我的 checkboxarray 值。我的复选框如下。它正在从 mysql 数据库中获取数据并显示为复选框
<?php
while($oaNamesQueryRow = mysqli_fetch_array($oaNamesQueryExecute)){
$oaName = $oaNamesQueryRow['oaName'];
echo '<div class = "checkbox-group" required style="float:left; margin-right: 25px;"><input class="checkBoxes" type="checkbox" name="checkBoxArray[]" value="'.$oaName.'" '; ?> <?php if(in_array($oaName,$_POST['checkBoxArray'])) echo "checked='checked'"; ?> <?php echo '> '.$oaName.'</div>';
}
?>
【问题讨论】:
-
您在
new FormData..附近错过了),只需添加new FormData($("#main"));并检查您的控制台是否有任何错误? -
在浏览器的开发工具中,在网络选项卡中,您是否看到正在发送到服务器的数据?如果是这样,那里有checkboxarray吗?如果你在定义后立即 console.log(FD) 呢?
-
试试
var_dump($_POST);看看它有什么作用。也可以得到类似的值 ->$checkbox= explode("," ,$_POST["checkBoxArray"]);。 -
这是用 PHP 获取它的正确方法。我怀疑问题是您的 javascript 没有发送 Ajax 请求中的值。你知道如何打开和使用浏览器的开发工具吗?如果是这样,请检查正在发送到服务器的数据。如果没有,请查找有关如何使用开发工具的教程。调试起来会快很多。
标签: php jquery html ajax forms