在Codeigniter中将javascript变量从视图发送到控制器

Cha*_*nga 5 javascript php controller codeigniter view

可能重复:
如何将JavaScript函数数据转换为PHP变量

我在order.php视图中有一个javascript变量,我想将该变量发送到控制器,然后发送到模型以将其写入数据库.

例如:var myOrderString ="something"to order.php controller.

这该怎么做?

Eri*_*c H 4

为了构建 rayan.gigs 和 antyrat 的答案,下面是对 rayan.gigs 答案的修复以及如何在控制器端接收该信息:

rayan.gigs 固定答案(修改为匹配下面的控制器示例):

// your html
<script>
    var myOrderString = "something";

    $.ajax({
        type: "POST",
        url: <?= site_url('OrderController/receiveJavascriptVar'); ?>
        data: {"myOrderString": myOrderString},  // fix: need to append your data to the call
        success: function (data) {
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

jQuery AJAX 文档解释了 AJAX 函数可用的不同函数和参数,如果您不熟悉 jQuery 的 AJAX 功能,我建议您阅读它。即使您不需要成功回调,您可能仍然希望实现错误,以便您可以重试 AJAX 调用、记录错误或通知用户(如果适用)。

antyrat(已修改以适合下面的控制器示例):

<form action="<?= site_url('OrderController/receiveJavascriptVar'); ?>" method="POST"  id="myForm">
  <input type="hidden" name="myOrderString" id="myOrderString">
</form>
<script>
  var myOrderString = "something";
  document.getElementById('myOrderString').value = myOrderString;
  document.getElementById('myForm');
</script>
Run Code Online (Sandbox Code Playgroud)

对于上述两种情况,控制器可能如下所示:

<?php
    class OrderController extends CI_Controller
    {
        public function receiveJavascriptVar()
        {
            $myJSVar = $this->input->post('myOrderString');
            // push to model
        }
    }
?>
Run Code Online (Sandbox Code Playgroud)

我会推荐 rayan.gigs 方法而不是滥用表单。但是,如果您尝试提交用户信息或与现有表单提交一起提交信息,您可以使用 antyrat 的方法,只需插入您在渲染时或通过 javascript 填充的隐藏内容。