我正在项目中使用codeigniter创建应用程序,但是当我想通过ajax将相同的变量传递到控制器中时,我被卡住了,我得到错误,变量未定义。
这是一个例子。
$("#form_status_update").submit(function() {
var date = new Date().toString();`
$.ajax({
type: 'POST',
url: "<?php echo base_url()?>socialcontroller/setdate",
data:date,
success: function(data) {
window.location.href = "<?php echo base_url()?>socialcontroller/ssetdate";
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError); //throw any errors
}
});
});
传递一些var之后我想插入我的数据库。 我的问题是如何通过ajax将变量not field传递给控制器谢谢,我已经在google上搜索但我没有找到正确的答案:) `
答案 0 :(得分:2)
第data:date,
行是错误的。您在查询字符串上传递了一个数字而不是键/值对。
需要
data: {date : date},
或
data: "date=" + encodeURIComponent(date),
数据
键入: PlainObject或String或Array
要发送给的数据 服务器。如果不是字符串,它将转换为查询字符串。 它附加到GET请求的URL。请参阅processData选项 防止这种自动处理。对象必须是键/值对。如果 value是一个数组,jQuery使用相同的键序列化多个值 基于传统设置的价值(如下所述)。
答案 1 :(得分:0)
您的选择器$("form_status_update")
与类或 DOM 的 ID 不匹配。
并且它也不匹配html元素。
所以这肯定会给你一些(额外的)问题。
答案 2 :(得分:0)
你不能尝试在你从ajax函数调用的php控制器上运行日期函数。 我没有看到为什么你必须从javascript函数发送日期作为输入参数的任何具体原因。
删除日期变量和数据字段。 并在你的PHP控制器。 当你得到控制器时。 在php代码中运行一个日期函数并使用那里的日期。
答案 3 :(得分:0)
以下是帮助您解决问题的代码 您可以使用您的代码进行调整,它应该可以工作!
<script>
$(document).ready(function(){
$("button").click(function(){
var myDate = new Date();
$.ajax({
// Send with POST mean you must retrieve it in server side with POST
type: 'POST',
// change this to the url of your controller
url:"index.php",
// Set the data that you are submitting
data:({date:myDate}),
success:function(result){
// Change here with what you need to do with your data if you need of course
$("#div1").html(result);
}});
});
});
</script>
<body>
<div id="div1">
<p>Today date here</h2>
</div>
<button> Get Date< /button>
</body>
</html>
你的PHP代码可以是这样的!
<?php
// This line of code should get your data that you are sending
$data = $_POST['date'];
/// This code was just for checking purpose that it is returning the same value through ajax
$arr = array(
'receive_date'=>$data,
);
echo json_encode($arr);
如果您将控制器URL设置为url参数,我认为此代码可以与MVC框架的必须一起使用。还要查看有关通过POST获取数据的Framework文档!