我需要使用AJAX向PHP发送一些值。我的代码适用于输入类型" text"但是" date"没有工作:(也许是因为我正在使用"序列化()"。我花了一整天来解决这个问题......我在JS和AJAX中假装我的想法***对我而言所以,如果你知道如何解决这个错误,我将非常感激!
我的代码HTML / JS:
<form method="post" action="javascript:send('SendData.php','myform','result');" id="myform">
<input type="text" name="whois" value="5" /><br/>
<input value='2004-02-12' type='date' name="Date"><br/>
<input type="button" value="Send" onClick="send('SendData.php','myform','result');" />
</form>
<script type="text/javascript">
function send(url,form_id,result_div)
{
$.ajax({
type: "POST",
url: "SendData.php",
data: $("#"+form_id).serialize(),
success: function(html) {
$("#"+result_div).empty();
$("#"+result_div).append(html);
},
error: function() {
$("#"+result_div).empty();
$("#"+result_div).append("ERROR!");
}
});
}
</script>
和PHP
<?php
echo $_POST['whois'];
echo '<br>';
echo $_POST['Date'];
?>
答案 0 :(得分:1)
您的代码适合我... http://jsbin.com/finomificoyo/1/edit显示两个带数据的POST
答案 1 :(得分:0)
我认为问题在于您使用
data: $("#"+form_id).serialize(),
获取您的&#34;数据&#34;值。但是你在代码中我看不到你的身份在哪里?
<input value='2004-02-12' type='date' name="Date"><br/>
我认为jQuery无法找到对象
$("#"+form_id)
试试这个
<input id="dataVal" value='2004-02-12' type='date' name="Date"><br/>
在Ajax中使用
data:$("dataVal").val();
仅执行测试:
alert($("dataVal").val());
答案 2 :(得分:0)
serialize()
函数返回了get的字符串,但你需要使用serializeArray
来获取数组中的所有表单数据并在后端发送如果你使用方法get你可以使用serlialize
函数,但是你使用方法帖子,用于后期使用serilaizeArray()
功能
jQuery('#myform').serializeArray()
答案 3 :(得分:0)
你缺少一些大括号,所以javascript可能实际上不会编译。 如果你看过,浏览器javascript调试器应该可以告诉你。
我不确定您是否使用旧的jquery库,但如果您使用的是相当新版本,请尝试使用。
function send(url,form_id,result_div)
{
$.ajax({ type: "POST", url: "SendData.php", data: $("#"+form_id).serialize()})
.done( function(html) {
$("#"+result_div).empty();
$("#"+result_div).append(html);
})
.fail( function() {
$("#"+result_div).empty();
$("#"+result_div).append("ERROR!");
});
}
</script>