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

Php 使用AJAX将字符串动态传递到页面,php,jquery,ajax,Php,Jquery,Ajax,我有一个带有文本字段的注册表。我试图将该字段中输入的字符串传递到php文件,以动态验证该字符串。最好的(性能方面的)方法是什么 使用 data: { cont: str , inputType : vtype} 或查询字符串 url: 'validate.php?q='+str+'t='+vtype; 这是我当前的脚本: function validate(str,vtype) { $.ajax({ type: 'GET',

我有一个带有文本字段的注册表。我试图将该字段中输入的字符串传递到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('');
                }
            });
        }

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

url: 'validate.php?q=' + str + '&t=' + vtype;
换句话说,对于
GET
request,最好显式地构建和使用URL(带有查询字符串),而不是让jQuery为您进行转换

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


来源:

首先,jQuery旨在简化JavaScript开发;为什么要用更优雅的替代品进行字符串连接

jQuery所做的另一件事是确保数据被正确转义;举个例子,使用
数据:
的等效方法实际上是:

url: 'validate.php?q=' + encodeURIComponent(str) + 't=' + encodeURIComponent(vtype);
否则,
str
vtype
的值可能会弄乱查询字符串

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

结论 请这样做:

data: { cont: str , inputType : vtype} 

虽然这主要是基于观点,但我建议使用前一种方法。谢谢。这是有道理的,现在我有一些事情要向我的教授解释。他真是个表演狂。总是想要一个关于“为什么要使用这个而不是那个”的解释。如果是这样,他可能会问你为什么要使用jQuery而不是Vanilla JS;-)谢谢你的建议,我想我会查一下Vanilla JS。谢谢你提供的信息:)。当我向我的朋友解释这件事的时候肯定会有帮助的,没问题。如果有帮助的话,如果你把它作为一个答案,我将不胜感激。谢谢