【问题标题】:access html 5 data attribute in php在php中访问html 5数据属性
【发布时间】:2015-08-30 02:48:30
【问题描述】:

我有一个表格,其中包括

<input id="user-id" type="text" data-user-id="" name="message" placeholder="type and send..." class="form-control">

data-user-id HTML5 数据属性。当我提交表单时,我想在 php 类中使用 data 属性的值。如何在php中访问这个数据属性?

【问题讨论】:

  • 您的意思是在 $post 中或通过 xmlparser。?
  • 我想将此值存储在 db 中,因此我必须以某种方式通过 php 访问它。

标签: php html custom-data-attribute


【解决方案1】:

您的用户 ID 应位于单独的隐藏字段中,例如:

<input type="hidden" name="user_id" value="123">
<input type="text" name="message" placeholder="type and send..." class="form-control">

您的message 输入不应包含user-idid,并且根本不需要data-user-id

JavaScript 使用数据属性。隐藏的输入将用户不需要看到的值传递给 PHP。两者都不是真正对用户隐藏的。

【讨论】:

  • 我不想使用隐藏字段,这可能不是一个好习惯。我想使用 HTML5 数据属性来发布额外的数据。
  • @Adamnick 我认为您对数据属性的用途感到困惑。提交表单时,隐藏字段不仅是一种好的做法,而且是此类行为的标准。
  • 其实我同意 rybo111 的观点,这比我的解决方案更好。
  • 数据属性使数据私有,但隐藏输入只是隐藏数据,用户仍然可以看到它。
  • @Adamnick 用户也可以看到您的数据属性。例如,尝试在 Chrome 中检查元素。
【解决方案2】:

如果您将此表单直接发布到 PHP 脚本,则无法访问数据属性。如果您希望能够做到这一点,您需要在 Javascript 中侦听表单提交,然后在提交时抓取您需要的数据并将其发布到 PHP 脚本以进行处理。

这是一些示例代码(未经测试!),使用 jQuery。

$('#form_name').on('submit',function(){

   var user_id = $('#user-id').attr('data-user-id');

   $.post('form_handle.php',{'user_id':user_id,[...],[...]});

});

其中[...] 是要发布到处理程序的任何其他表单数据。然后,处理程序可以以正常方式检索发布的值,例如$_POST['user_id'].

【讨论】:

  • 那么在form_handle.php 中我将使用 $_POST['user_id'] 访问该值?
  • 我是初学者,我只知道javascript,上面的代码不起作用。
  • 可以用js给出解决方案吗?
  • 现在不行——只需在你的 HTML 文档中引用 jQuery(按照他们网站上的说明),代码应该可以工作(虽然我还没有测试过)。
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 2018-06-12
  • 1970-01-01
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多