【问题标题】:Javascript get form value in URL without jQueryJavascript在没有jQuery的情况下获取URL中的表单值
【发布时间】:2012-08-02 00:13:38
【问题描述】:

如果数据是通过经典的 HTML 表单方法通过 POST 提交的,是否可以使用没有库的标准 Javascript 访问这些值?这将如何实现?

为清楚起见进行编辑:变量已发布。我正在尝试通过 javascript 访问这些值。

【问题讨论】:

  • 如下所述,如果没有库,这实际上是不可行的 - 但您可以将一个函数附加到表单的 onsubmit 事件中,并在其中获取表单提交时所需的表单值。
  • 发布了我的“答案”,有多糟糕?
  • 您的意思是“在提交之前获取表单”还是“接收已发布的表单”?前者可能是客户端,后者不是。
  • 接收张贴的表格。而我做到了?虽然我不知道我的解决方案是否“有效”。然而,它是功能性的。

标签: php html ajax forms post


【解决方案1】:

跳出框框思考:(永远不应该看到光明的黑客)

对于这个例子,发布的变量是“a”:

var val=document.URL;
var start;
start = val.search(/a=/);
var end;
end = val.search(/&/);
var thispos = val.substring(start+2,end);
  1. document.URL 返回当前站点的 url。
  2. val.search 返回正则表达式第一次出现的位置 参数字段。
  3. substring两个和...
  4. thispos 现在包含发布的变量。

残酷但实用。这太可怕了,无法回答吗?

【讨论】:

  • 更简单:var data = window.location.search.substr(1).split("&");将为您提供格式为“name=value”的字符串数组
【解决方案2】:

使用:

var myField = document.getElementById('myFieldId');

然后 myField.value 将包含该值。

【讨论】:

    【解决方案3】:

    如果您已经提交了页面,那么您必须使用 PHP 获取表单数据。 这是一个应该有帮助的教程:http://www.phpf1.com/tutorial/php-form.html

    但是如果你决定测试jQuery,你可以使用这个:

    jQuery('#submit').live('click', function() 
    {
      var form_data = jQuery("#data_form").serialize();  
    
      //Save data
      jQuery.ajax({
        url: siteURL +"/path/to/php/file/jquery.php",
        data: {formData : form_data,
        success: (function(data) {
          //data is whatever you return from jquery.php
          //I use json for return data
          alert('Data has been saved');
        }),
        dataType: 'json'
      });
    

    【讨论】:

      【解决方案4】:

      发布后,数据被发送到服务器,javascript 不能做任何事情,因为它的客户端。您可以做的是预先检查 document.getElementById('formid') 并在表单中使用这些值。在验证或做你想做的事情后,以form.submit() 结尾,真正发送到服务器。

      【讨论】:

      • 正确的 POST,但您仍然可以通过 GET 获取提交的数据。
      【解决方案5】:

      提交的数据(POST 或 GET)在服务器端进行处理。 Javascript 在客户端运行,因此您无法从接收表单请求的页面访问变量。 但是您可以在发布之前使用输入字段 id 访问它们(特别是在发送之前检查输入值)。

      【讨论】:

      • 不正确:GET 数据作为 URL 的一部分提交,因此可以通过纯 JavaScript 访问
      猜你喜欢
      • 2018-01-21
      • 2015-06-09
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 2016-09-07
      相关资源
      最近更新 更多