php - Code Igniter - 使用 window.location.hash 获取哈希值并在 set_value() 中使用?

标签 php javascript codeigniter

我需要使用 javascript 从当前窗口 url 获取哈希 # 值(无法使用 PHP 获取),然后使用它通过 CI 的 set_value() 函数设置表单输入的值属性。

有什么想法可以获取 javascript 中的值然后将其放入 PHP 函数中吗? :-S

提前致谢!

最佳答案

我不太清楚您是否完全理解 Javascript 和 PHP 之间的关系,所以我假设您没有。 PHP 在服务器上运行并将 HTML 输出到浏览器(以及一些 header 和其他内容)。一旦 HTML 发送到浏览器,用户对您网站的操作就不受您的控制,直到他的浏览器执行另一个 GET 或 POST 请求(或打开持久的 Web 套接字连接)。正如您所提到的,PHP 不可能直接读取哈希值,因为它仅限于浏览器,只能通过 Javascript 访问。由于该特定请求的 PHP 脚本已停止运行,并且页面数据已输出到浏览器,因此使用 Javascript 获取值、使用另一个 http 请求将其发送回 PHP、使用 set_value() 有什么意义?函数,然后呢?

如果您使用window.location.hash并将输入框的值设置为等于它,则当用户提交表单时您将能够使用set_value()。看一下 CI 的 set_value() 辅助函数:

function set_value($field = '', $default = '')
    {
        if (FALSE === ($OBJ =& _get_validation_object()))
        {
            if ( ! isset($_POST[$field]))
            {
                return $default;
            }

            return form_prep($_POST[$field], $field);
        }

        return form_prep($OBJ->set_value($field, $default), $field);
    }

它首先检查您是否已设置表单验证对象。如果有,它会使用该对象的 set_value 运行 form_prep() 函数(大概是为了管理您在表单验证中设置的任何规则。如果没有,它会查看该字段是否存在于 $_POST 数组中。如果如果不存在,则返回默认值。如果存在,则返回 $_POST 数组中的值。因此,如果您 a) 为其设置表单验证规则 b) 为该输入框指定您想要的名称在 set_value() 函数中使用,您将能够检索您使用 Javascript 输入到该输入框中的 PHP 中的哈希值。

关于php - Code Igniter - 使用 window.location.hash 获取哈希值并在 set_value() 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3881037/

相关文章:

php - Wordpress-按自定义字段获取帖子

javascript - Jquery php实时搜索文本在搜索栏中消失

javascript - 我如何伪造全局上下文来隔离测试?

database - 如何删除多行?

PHP - 查找包含当前文档的脚本的 URL

php - MySQL 重复键更新多次插入

javascript - <body>.onLoad 是在渲染完成之前调用的吗?

php - 点火器 |获取上一个 URL 并用作上一页的后退按钮

php - 如何创建唯一的注册号

php - 使用 PHP 创建 PDF 文件