Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中如何将视图内部的javascript变量传递给控制器_Javascript_Php_Html_Ajax_Codeigniter - Fatal编程技术网

在php中如何将视图内部的javascript变量传递给控制器

在php中如何将视图内部的javascript变量传递给控制器,javascript,php,html,ajax,codeigniter,Javascript,Php,Html,Ajax,Codeigniter,我需要将一个变量值从javascript传递给控制器。该值是通过html中的select选项获得的,javascript代码在视图中。我已经编写了代码,但它只是显示了我选择的HTML值,而不是存储在php变量中 以下是我的javascript代码: 这是我的html: 注意:使用ajax将变量传递给控制器会更好 在代码中,您两次使用变量month的值,而不是将'month'定义为$\u POST global的变量名: data : {month:month}, 解析后,如果所选月份为例

我需要将一个变量值从javascript传递给控制器。该值是通过html中的select选项获得的,javascript代码在视图中。我已经编写了代码,但它只是显示了我选择的HTML值,而不是存储在php变量中

以下是我的javascript代码:

这是我的html:

注意:使用ajax将变量传递给控制器会更好


在代码中,您两次使用变量month的值,而不是将'month'定义为$\u POST global的变量名:

data    : {month:month},
解析后,如果所选月份为例如四月,则结果为:

data    : {April:April},
当你真的想要

data    : {month:April},
因此,我建议修改您的代码,并将变量名用引号括起来:

data    : {'month':month},

这样,PHP脚本实际上将有一个$_POST['month']可以使用

在控制器中写下条件,这样ajax结果就是纯文本

您误解了ajax的工作原理。JS是客户端,而php是服务器端。无论您是否选择异步,页面上的php已经呈现,因此您不能在事后更改php代码或变量。您所能做的最好的事情就是操纵success回调中的div,看起来您已经在尝试这样做了

因此,在ajax控制器lapkinerjastat中,您可以执行以下操作:

$month = $this->input->post('month');
if (is_null($month)) {
    echo 'This is ' . $month;
} else {
    echo 'Nothing';
}
并通过$'month'.htmldata;服务器端php中的逻辑将被复制


我不知道你为什么要用ajax。你可以用straight js轻松完成这一切。

这是公开的吗?如果是,请提供该页面的链接。或者,一段代码片段会很有用。我尝试了你的建议,但结果是页面变成了两倍。这是截图。在这张图片中,我设法将变量从javascript传递到php,但结果是双页面。在前面的评论中编辑我无意中放错了图片。不,它在localhost中。但是我需要发送并存储要查看的变量,而不仅仅是在提交文件时回显它。use.serialize方法form@curiosity谢谢你的回复,但我不使用选择选项的形式。我想用javascript将变量传递给php中的控制器。感谢您的回复,我是否需要删除success:functiondata{$'month'.htmldata;}?
data    : {'month':month},
$month = $this->input->post('month');
if (is_null($month)) {
    echo 'This is ' . $month;
} else {
    echo 'Nothing';
}