使用AJAX将字符串动态传递到页面

时间:2014-04-21 02:42:58

标签: php jquery ajax

我有一个带有文本字段的注册表单。我试图将该字段上输入的字符串传递给php文件以动态验证字符串。什么是最好的(以性能为导向)的方式。

使用

data: { cont: str , inputType : vtype} 

或查询字符串

url: 'validate.php?q='+str+'t='+vtype;

这是我目前的剧本:

function validate(str,vtype) {
            $.ajax({
                type: 'GET',
                url: 'validate.php?q='+str+'t='+vtype,
                timeout: 1000,
                success: function (data) {
                    $("#validationIndicator").html(data);
                },
                error: function (XMLHttpRequest, errorThrown) {
                    $("#validationIndicator").html('');
                }
            });
        }

2 个答案:

答案 0 :(得分:1)

有趣的问题!当您在data中传递$.ajax({})键值对时,会将其转换为查询字符串,并将其附加到URL。这与您执行以下操作类似:

url: 'validate.php?q=' + str + '&t=' + vtype;

换句话说,对于GET请求,最好明确地构建和使用URL(带有查询字符串),而不是让jQuery为你做转换。

此外,您可以在processData请求中传递Ajax布尔值。如果提供FALSE,则此布尔值不会自动将data转换为查询字符串。

来源: https://api.jquery.com/jQuery.ajax/

答案 1 :(得分:1)

首先,jQuery旨在使JavaScript开发更容易;为什么要通过更优雅的替代品进行字符串连接?

jQuery做的另一件事是确保您的数据被正确转义;举一个例子,相当于使用data:实际上是这样的:

url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);

否则,strvtype的值可能会破坏查询字符串。

其次,构建请求所花费的时间与往返服务器的时间可以忽略不计,因此您应该选择更简单且不易出错的选项。

结论

坚持下去:

data: { cont: str , inputType : vtype}