我在 order.php 视图中有一个 javascript 变量,我想将该变量发送到控制器,然后发送到模型以将其写入数据库。
例如:var myOrderString = "something" to order.php 控制器。
这个怎么做?
我在 order.php 视图中有一个 javascript 变量,我想将该变量发送到控制器,然后发送到模型以将其写入数据库。
例如:var myOrderString = "something" to order.php 控制器。
这个怎么做?
为了建立 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>
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>
对于上述两种情况,控制器可能如下所示:
<?php
class OrderController extends CI_Controller
{
public function receiveJavascriptVar()
{
$myJSVar = $this->input->post('myOrderString');
// push to model
}
}
?>
我会推荐 rayan.gigs 方法而不是滥用表格。但是,如果您尝试提交用户信息或在现有表单提交的同时提交信息,您可以使用 antyrat 的方法并插入您在渲染时或通过 javascript 填写的隐藏项。
您想将 var 从视图发送到另一个控制器 ..... 这意味着新请求
使用 Ajax 请求很容易做到
在视图中
// your html
<script>
var X = "bla bla ";
$.ajax
({
type: "POST",
url: // ur controller,
success: function (html)
{
}
});
</script>
您可以创建<form>
带有隐藏字段的简单 html。将您的 JS 变量分配给该字段并提交表单。
简单的例子:
<form action="order.php" id="myForm">
<input type="hidden" name="myOrderString" id="myOrderString">
</form>
<script>
var myOrderString = "something";
document.getElementById('myOrderString').value = myOrderString;
document.getElementById('myForm');
</script>
现在在order.php
你将_GET
有价值myOrderString
。
您也可以简单地使用 AJAX 来完成。