Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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文件中的变量使用AJAX自动完成文本框_Php_Jquery_Ajax_Json_Autocomplete - Fatal编程技术网

使用PHP文件中的变量使用AJAX自动完成文本框

使用PHP文件中的变量使用AJAX自动完成文本框,php,jquery,ajax,json,autocomplete,Php,Jquery,Ajax,Json,Autocomplete,我正在做一个项目,我需要确保我的表单根据第一个文本框的输入立即自动填充两个文本框。现在我只是在测试。我不能使用数据库条目来填充表单,只能使用PHP变量。我的逻辑应该是这样的:用户在我表单上的文本框(在PHP文件中指定)中键入一个特定的10位数字,然后在对该PHP文件进行AJAX调用后,其他两个文本框自动填充特定的条目。这绝对是我到目前为止遇到的更复杂的任务之一(noob)。我的代码不起作用,所以我非常感谢任何能让它正常运行的帮助 HTML是这样的: <!--load scripts, li

我正在做一个项目,我需要确保我的表单根据第一个文本框的输入立即自动填充两个文本框。现在我只是在测试。我不能使用数据库条目来填充表单,只能使用PHP变量。我的逻辑应该是这样的:用户在我表单上的文本框(在PHP文件中指定)中键入一个特定的10位数字,然后在对该PHP文件进行AJAX调用后,其他两个文本框自动填充特定的条目。这绝对是我到目前为止遇到的更复杂的任务之一(noob)。我的代码不起作用,所以我非常感谢任何能让它正常运行的帮助

HTML是这样的:

<!--load scripts, libraries, etc.-->
<form method="GET">
Number: <input type="text" name="num" id="num">
First Name: <input type="text" name="first" id="first">
Last Name: <input tupe="text" name"last" id="last">
</form>

在ajax中,这样的更改很容易理解

        type: "GET",
        data:{num: el.val()},//if multiple then like this->data:{attr:val1,attr2:val2,...},
在php中

<?php

$first["John"]="john";//i hope you have these two values defined
$last["Smith"]="smith";

$num=$_GET["num"];

if ($num=="0123456789")
{
        $fill = array(
        'firstname' => $first["John"],
        'lastname' => $last["Smith"],
         );
    echo json_encode($fill);
}
else
{
    echo "Bad input.";
}

?>


解释

看这个过程是怎样的

  • 首先,在ajax的帮助下(通过 ajax请求)
键入:“获取”
数据:{num:el.val()},

  • 因此,当我们将数字作为GET请求发送给php时,在php中,我们通过
    $\u GET['num']
    获得这个数字,因此现在这个值将包含
    0123456789
现在我们检查php中的if条件

if($num==“0123456789”)
{
//这里我们需要将firstname和lastname值发送回AJAX请求
所以我们需要在php中手动定义这些名字和姓氏,或者从数据库中获取(如果您在DB中有这些名字和姓氏)
echo json_编码($fill);

}

为什么
$first=$\u GET[“first”]$last=$\u GET[“last”]
您没有将这些值发送到php,对吗?请尝试以下
数据:“npi=“+el.val(),
作为
数据:{npi:el.val()}
@ferozakbar尝试无效,不幸。什么意思?我正在使用GET方法将表单值传递给PHP。您说过
然后其他两个文本框会自动填充特定的条目
,所以您没有传递这些???你必须正确地从php获取这些值???@ferozakbar没错,我需要从php中的JSON对象获取名字和姓氏。如果用户在num文本框中键入0123456789,则name和last文本框将分别填充John和Smith。您的意思是在PHP代码上方定义值,如$first=$\u get[“first”]对吗?没有兄弟,这些firstname和lastname值是从哪里来的?我明白了,它们现在就从这里出来了。做“第一”=>$first[“John”],“last”=>$last[“Smith”]有意义吗,?我对AJAX和JSON还没有很好的理解,我非常感谢你的解释,但是我仍然没有达到我需要的程度。在我做了一些更改之后,我的PHP现在可以正常工作了(如果您只是尝试访问.PHP文件,它会返回一个JSON字符串{John Smith})。现在的问题似乎是我的jquery。发生了什么事??现在您可以在ajax中获得值,您只需做您想做的事情
        type: "GET",
        data:{num: el.val()},//if multiple then like this->data:{attr:val1,attr2:val2,...},
<?php

$first["John"]="john";//i hope you have these two values defined
$last["Smith"]="smith";

$num=$_GET["num"];

if ($num=="0123456789")
{
        $fill = array(
        'firstname' => $first["John"],
        'lastname' => $last["Smith"],
         );
    echo json_encode($fill);
}
else
{
    echo "Bad input.";
}

?>