【问题标题】:Access html elements data and send to controller in PHP访问 html 元素数据并在 PHP 中发送到控制器
【发布时间】:2012-02-28 05:46:57
【问题描述】:

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

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

有没有办法用 PHP 做 MVC AJAX 之类的事情?读取 html 元素值并将它们发送到控制器进行数据操作?

【问题讨论】:

  • 你说你知道如何在 .net mvc 中做到这一点,所以它在 yii 中没有太大的不同,告诉我你到底卡在哪里

标签: php jquery yii yii-components


【解决方案1】:

它的工作方式相同。 Yii 自带 jquery,所以你

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

到某个控制器函数,用它做任何你想做的事情,并返回一个响应,使用 php 的echo

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

编辑:
要向生成的 html 添加<script>,请参阅registerScript

要创建 url,请使用 createUrl 函数。

将 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 数组,我们也可以在其中传递ajax options

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

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

希望这足以让您开始。

【讨论】:

  • 所以就像在我通过带有 Ajax 的 URL 将数据发送到控制器之前一样,一切都一样吗?!听起来棒极了,怎么没人谈论这个...我在谷歌搜索后看到很多文章建议$_POST['field_name'],我想我不擅长谷歌搜索。
  • umm..每当您向服务器发送数据时,您都通过 GET 或 POST 变量发送,对吗?所以 $_POST 有 post 变量,而 $_GET 有 get 变量,以防你不知道。只需使用 jquery ajax 方法。在 yii 中有一个 CHTML 类,它有一个建立在 jquery ajax 之上的函数,所以你可以使用它。一般在yii中指定html标签的时候,我们也可以传递ajax选项,由chtml类的这个ajax方法来取
  • 好酷。我知道 GET/POST,我的意思是使用 $_POST['field'] 方法与 Ajax 方法相比有很多重点。我开始想也许 ajax 和 php 不能很好地混合或其他东西,因为没有关注它。感谢您的 CHTML 提示,对此一无所知。今晚我会试一试。
  • 是的,你通过 url 发送,但是 yii 再次带有一个帮助函数来生成 url,createUrl。
  • 你这个男人。感谢您的所有努力。今晚我会试一试,我很高兴尝试它是不是很奇怪?我喜欢 MVC。
猜你喜欢
  • 1970-01-01
  • 2017-09-02
  • 2013-07-14
  • 1970-01-01
  • 2018-09-20
  • 2020-08-16
  • 2015-09-26
  • 1970-01-01
  • 2022-07-06
相关资源
最近更新 更多