重複の可能性:
JavaScript関数データをPHP変数に取り込む方法
order.phpビューにjavascript変数があり、その変数をコントローラーに送信してからモデルに送信して、データベースに書き込みます。
例:var myOrderString = "something"toorder.phpコントローラー。
これを行う方法?
重複の可能性:
JavaScript関数データをPHP変数に取り込む方法
order.phpビューにjavascript変数があり、その変数をコントローラーに送信してからモデルに送信して、データベースに書き込みます。
例:var myOrderString = "something"toorder.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を使用するだけでそれを行うことができます。