通过AJax传递变量
我在项目中使用codeigniter来制作应用程序,但我被卡住了,当我想通过ajax将相同的变量通过ajax传入控制器时,我得到错误,变量未定义。通过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
}
});
});
传递一些变量后,我想插入到我的数据库。 和我的问题是如何通过一个变量不能在现场为通过AJAX感谢控制器,我已经在谷歌搜索,但我没有歌厅正确的答案:) `
以下是帮助您解决问题的代码 您可以根据自己的代码调整它,它应该可以工作!
<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);
我觉得这个代码可以用MVC框架的必须工作,如果你设置你的控制器URL作为URL参数。请检查通过POST获取数据的Framework文档!
线data:date,
是错误的。你在querystring上传递一个数字,而不是一个键/值对。
它需要
data: {date : date},
或
data: "date=" + encodeURIComponent(date),
数据
类型: PlainObject或字符串或阵列
数据要被发送到所述服务器 。它被转换成查询字符串,如果还不是字符串的话。 它附加到GET请求的url。请参阅 的processData选项来防止此自动处理。对象必须是键/值对。如果 value是一个数组,jQuery基于传统设置的值(如下所述)使用相同密钥 序列化多个值。
不错的工作。在 – 2014-11-24 18:33:18
之前没有听说过第二个选项,那么控制器怎么样? – 2014-11-24 18:36:01
控制器怎么样?它期望什么? – epascarello 2014-11-24 18:38:04
您选择$("form_status_update")
不匹配类或DOM的ID。 ,它也不匹配html元素。 所以这肯定会给你一些(额外的)问题。
我仍然没有得到我的控制器中的变种,我已经变成$(“#form_status_update”) – 2014-11-24 18:46:17
不能你已经尝试在你从ajax函数调用的php控制器上运行日期函数。 我没有看到任何具体的原因,为什么你必须发送日期作为JavaScript函数的输入参数。
删除日期变量和数据字段。 和你的php控制器。当你得到被调用的控制器时, 在php代码中运行日期函数并使用该日期。
是否在第二行上有复制/粘贴错误?你可能不应该使用'date'作为变量的名字,因为它是一个关键字。 – 2014-11-24 18:25:01
@JayBlanchard'date'是一个关键词? – epascarello 2014-11-24 18:28:48
多数民众赞成只是一个例子,我只是想通过ajax – 2014-11-24 18:28:49