通过AJax传递变量

时间:2014-11-24 18:23:38

标签: javascript php jquery ajax codeigniter

我正在项目中使用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上搜索但我没有找到正确的答案:) `

4 个答案:

答案 0 :(得分:2)

data:date,行是错误的。您在查询字符串上传递了一个数字而不是键/值对。

需要

data: {date : date},

data: "date=" + encodeURIComponent(date),

From jQuery Docs:

  

数据

     

键入: 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文档!