Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery+;表格+;文本输入>;是否可以在textinput中显示一个值并提交另一个值?_Php_Javascript_Jquery_Html - Fatal编程技术网

Php jQuery+;表格+;文本输入>;是否可以在textinput中显示一个值并提交另一个值?

Php jQuery+;表格+;文本输入>;是否可以在textinput中显示一个值并提交另一个值?,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我正在开发一个应用程序,其中日期以yyyy-mm-dd的形式传递,但以mm-dd-yyyy(基于美国的客户端)的形式显示给客户端 我使用jQuery datepicker在报表中选择从/到日期,并希望将日期显示为mm-dd-yyyy,但在提交表单时,提交为yyyy-mm-dd 是否可以在textinput文本框中显示一个值并提交另一个值,而无需连接到onSubmit 我提出了以下备选方案: 隐藏from和to字段的文本输入,创建虚拟字段并使用以下jQuery日期选择器函数:altField和al

我正在开发一个应用程序,其中日期以yyyy-mm-dd的形式传递,但以mm-dd-yyyy(基于美国的客户端)的形式显示给客户端

我使用jQuery datepicker在报表中选择从/到日期,并希望将日期显示为mm-dd-yyyy,但在提交表单时,提交为yyyy-mm-dd

是否可以在textinput文本框中显示一个值并提交另一个值,而无需连接到onSubmit

我提出了以下备选方案:

  • 隐藏from和to字段的文本输入,创建虚拟字段并使用以下jQuery日期选择器函数:altField和altFormat以其首选方式向客户端显示值,并仅处理通过alt函数设置的提交值

  • 使用onSubmit javascript调用将日期从mm dd yyyy更改为dd mm yyyy,并更改value=“将日期更改为客户端的首选格式

  • 重写应用程序以处理mm dd yyyy中的所有日期,并希望客户从未有非美国客户希望其日期采用特定格式

  • 将所有日期更改为dd-Mon-YYYY,例如2010年5月26日,因为我们客户的所有客户都保证只使用英语


  • 我这样做的方式是在PHP代码中显示之前和提交之后进行翻译。我从MySQL数据库中获取的日期是'YYYY-MM-DD'格式的,但使用jQuery UI datepicker以'MM/DD/YYYY'格式显示在表单中。

    编辑:如果您想使用一个附加字段,那么使用相同的恩

    使用dateFormat格式化要显示的日期,请使用$.datepicker.formatDate()按所需方式发送。更具体地说,在“提交”表单上,使用它重新格式化任何日期选择器

    $('form').submit(function() {
       $(this).find('input.yourDatePickerClass').each( function() {
          $dp = $(this);
          $dp.val( $.datepicker.formatDate( 'yy-mm-dd', $dp.datepicker('getDate')) );
       });
    });
    
    旧答案:

    查看中的altFormat选项。它允许您显示与您正在使用的日期格式不同的日期格式

    e、 g

    $( ".selector" ).datepicker({ altFormat: 'mm-dd-yy' });
    

    在将日期传递给DB之前,您应该始终清理并格式化日期。这不应该在客户端处理。一个简单的
    日期(“Y-m-d”,strotime($date))
    应该足够了。

    为什么要避免在onsubmit中执行此操作?我不想在一个区域中处理提交日期的格式设置,而在另一个区域中处理检索日期的格式设置。报表采用查询字符串参数(也在yyyy-mm-dd中)在jQuery datepicker中使用之前,需要对其进行过滤。在一个备用字段中,而不是在您正在使用的字段中。我对它的理解和测试使我相信我需要引入另一个字段,该字段将以备用格式保存日期。啊-我以为您需要虚拟字段的内容。我调整了我的答案accordingly.我倾向于远离JavaScript解决方案,因为最终用户可以很容易地绕过它们——不管是有意还是无意。在mm/dd/yy的情况下,用户总是可以绕过它。我的意思是,如果他们进入2010年6月5日,你如何检查这是mm/dd还是dd/mm?即使你最初处理字符串,他们也可以你知道吗?尽管从日期选择器以原始格式发送整个日期字符串,我认为最好在服务器上处理(如你所说,依赖服务器处理-我同意你的观点。这似乎不是一条有效的途径:OP问题)我喜欢这种方法,虽然它能有效地连接到onsubmit中,但我已经将其添加为书签,因为我确实认为它将来会派上用场,cheers。这是我倾向于的选择。它还有净化数据的副作用。该网站是私人登录,客户端不会试图恶意更改表单输入,所有数据库调用都是p参数化。即使如此,您也不应该信任您的用户。在处理数据时,清理和验证应该始终是一个重点。很高兴听到您在查询中使用参数:-)