Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.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自动完成:使用类_Php_Jquery_Html_Jquery Ui_Mysqli - Fatal编程技术网

Php jQuery自动完成:使用类

Php jQuery自动完成:使用类,php,jquery,html,jquery-ui,mysqli,Php,Jquery,Html,Jquery Ui,Mysqli,我试图用class='matricula'对所有文本框调用autocomplete函数,这样当它们失去焦点时,右边的框将填充来自同一条记录的数据(我用于执行此操作的查询可以在php文件buscaralumno.php和alumno.php中找到)。 问题是,当光标离开第一行的第一个文本框时,它会填充所有剩余的文本框,而不仅仅是第一行。 所以底线是:当我在每行的第一个文本框中输入至少2个字母时,会弹出一个建议可能值的列表(这就是它现在所做的),当我按tab键将焦点切换到下一个文本框时,剩余的文本框

我试图用class='matricula'对所有文本框调用autocomplete函数,这样当它们失去焦点时,右边的框将填充来自同一条记录的数据(我用于执行此操作的查询可以在php文件buscaralumno.php和alumno.php中找到)。 问题是,当光标离开第一行的第一个文本框时,它会填充所有剩余的文本框,而不仅仅是第一行。 所以底线是:当我在每行的第一个文本框中输入至少2个字母时,会弹出一个建议可能值的列表(这就是它现在所做的),当我按tab键将焦点切换到下一个文本框时,剩余的文本框中应该填充剩余字段的值。换句话说,一行文本框对应于数据库中的一条记录

<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<link href="css/jqueryui.css" type="text/css" rel="stylesheet"/>
<script>
$(document).ready(function(){
     $( ".matricula" ).autocomplete({
         source: "buscaralumno.php",
         position: { my: "right bottom", at: "right top", collision: "flip" },
         messages: { noResults: '', results: '' },
         minLength: 2
     });

     $(".matricula").focusout(function(){
         $.ajax({
             url:'alumno.php',
             type:'POST',
             dataType:'json',
             data:{ matricula:$('.matricula').val()}
         }).done(function(respuesta){
             $(".nombre").val(respuesta.nombre);
             $(".paterno").val(respuesta.paterno);
             $(".materno").val(respuesta.materno);
         });
     });
 });
 </script>
 </head>
 <form>
    <label for="matricula">Matricula:</label>
    <input type="text" class="matricula" name="matricula" value=""/>
    <label for="nombre">Nombre:</label>
    <input type="text" class="nombre" name="nombre" value=""/>
    <label for="paterno">Paterno:</label>
    <input type="text" class="paterno" name="paterno" value=""/>
    <label for="materno">Materno:</label>
    <input type="text" class="materno" name="materno" value=""/><br>
    <label for="matricula">Matricula:</label>
    <input type="text" class="matricula" name="matricula" value=""/>
    <label for="nombre">Nombre:</label>
    <input type="text" class="nombre" name="nombre" value=""/>
    <label for="paterno">Paterno:</label>
    <input type="text" class="paterno" name="paterno" value=""/>
    <label for="materno">Materno:</label>
    <input type="text" class="materno" name="materno" value=""/><br>
 </form>

$(文档).ready(函数(){
$(“.matricula”).autocomplete({
来源:“buscaralumno.php”,
位置:{my:“右下”,在:“右上”,碰撞:“翻转”},
消息:{noResults:'',结果:'},
最小长度:2
});
$(“.matricula”).focusout(函数(){
$.ajax({
url:'alumno.php',
类型:'POST',
数据类型:'json',
数据:{matricula:$('.matricula').val()}
}).完成(功能(respuesta){
美元(“.nombre”).val(相应的nombre);
美元(“.paterno”).val(分别为paterno);
$(“.materno”).val(respuesta.materno);
});
});
});
母系:
名义:
帕特诺:
马特诺:

母系: 名义: 帕特诺: 马特诺:
任何提示都将不胜感激。如果这个问题措词不当,我道歉。我对jQuery相当陌生,英语不是我的第一语言。

试试看

$(".matricula").focusout(function(){
    var $row = $(this), inputs = $row.nextUntil('.matricula', 'input');
    $.ajax({
        url:'alumno.php',
        type:'POST',
        dataType:'json',
        data:{ matricula:$('.matricula').val()}
    }).done(function(respuesta){
        inputs.filter(".nombre").val(respuesta.nombre);
        inputs.filter(".paterno").val(respuesta.paterno);
        inputs.filter(".materno").val(respuesta.materno);
    });
});
这几乎成功了!:)。让我进一步解释。我在数据库中有以下两条记录:(id-matricula-nombre-paterno-materno)-->(1,'gacanepa','Gabriel','Canepa','Gonzalez'),(2,'gabanepa','Gerardo','Pineda','Martinez')。在“矩阵”字段中设置自动完成。它在“matricula”类的所有文本框中都有效,但只有第一行填充了数据库中第一条记录的数据。