在php中如何将视图内部的javascript变量传递给控制器
我需要将一个变量值从javascript传递给控制器。该值是通过html中的select选项获得的,javascript代码在视图中。我已经编写了代码,但它只是显示了我选择的HTML值,而不是存储在php变量中 以下是我的javascript代码: 这是我的html: 注意:使用ajax将变量传递给控制器会更好在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}, 解析后,如果所选月份为例
在代码中,您两次使用变量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';
}