在PHP中访问html元素数据并发送到控制器

在PHP中访问html元素数据并发送到控制器,php,jquery,yii,yii-components,Php,Jquery,Yii,Yii Components,我是php的超级初学者,我正在使用一个名为Yii的MVC php框架。我似乎找不到任何文章解释如何使用PHP获取html元素的值。无论我看哪里,都是关于如何在其他视图中的帖子之后从表单字段中获取值。是否仍然可以获取字段值并将其发送到PHP中的控制器,然后返回到原始视图 在.NETMVC中,我只使用jquery获取表单字段并进行ajax调用。这不是敏感数据,所以我不担心安全问题。我喜欢ajax,因为我不做任何页面回帖,我只发送数据,并保持在原来的页面上 有没有办法用PHP实现MVC AJAX之类的

我是php的超级初学者,我正在使用一个名为Yii的MVC php框架。我似乎找不到任何文章解释如何使用PHP获取html元素的值。无论我看哪里,都是关于如何在其他视图中的帖子之后从表单字段中获取值。是否仍然可以获取字段值并将其发送到PHP中的控制器,然后返回到原始视图

在.NETMVC中,我只使用jquery获取表单字段并进行ajax调用。这不是敏感数据,所以我不担心安全问题。我喜欢ajax,因为我不做任何页面回帖,我只发送数据,并保持在原来的页面上


有没有办法用PHP实现MVC AJAX之类的功能?读取html元素值并将其发送到控制器进行数据操作?

其工作方式相同。Yii与jquery捆绑在一起,因此

只需使用jquery获取表单字段并执行ajax调用

对于某个控制器函数,使用php的
echo
对其执行任何操作,并返回一个响应

如果您已经了解一些jquery,那么客户端应该与.NETMVC没有太大区别

编辑:
要向生成的html添加
,请参阅

要创建URL,请使用函数

要将ajax选项添加到html标记,代码类似于:

echo CHtml::checkBox('mybox',false,
  array(// array for htmloptions, we also pass ajax options in here
    'class'=>'checkBoxes_class',
    'ajax'=>array(// this is ajax options for jquery's ajax
      'type'=>'POST',
      'url'=>Yii::app->createUrl('xyz',array('clickedboxid'=>'mybox')), // here you passed clickedboxid as a get variable
      'beforeSend'=>'function(){}',
      'success'=>'',
      // etc etc
    )
  )
);
每个html标记生成器帮助函数都接受htmlOptions数组,我们也可以在其中传递

在控制器中读取这些值时:

public function actionSomeAction($id){
   // $id is mybox
   echo "Hello"; // this is returned as response to the client
}

希望这足以让您开始使用。

您说您知道如何在.net mvc中实现这一点,因此在yii中没有太大的不同,请告诉我您的具体位置,就像在我使用Ajax通过URL将数据发送到控制器之前一样,一切都一样?!听起来很棒,为什么没人谈论这个…我在谷歌搜索后看到很多文章建议
$\u POST['field\u name']
,我想我不擅长谷歌搜索。嗯..无论何时向服务器发送数据,都是通过GET或POST变量发送的,对吗?所以$\u POST有POST变量,$\u GET有GET变量,如果您不知道的话。只需使用jQueryAjax方法。在yii中有一个CHTML类,它有一个构建在jquery的ajax之上的函数,所以您可以使用它。通常,当在yii中指定html标记时,我们还可以传递ajax选项,这些选项由chtml classok的这个ajax方法获取。我知道GET/POST,我的观点是使用$_POST['field']方法与Ajax方法相比,有很多关注点。我开始想,也许ajax和php不能很好地混合,或者其他什么东西,因为没有关注它。谢谢你的CHTML提示,我不知道。是的,你通过url发送,但yii再次提供了一个帮助函数来生成url,createUrl.you da man。谢谢你的努力。今晚我要试一试,我兴奋地想试一试是不是很奇怪?我喜欢MVC。