首页 > 解决方案 > 如何在表单输入字段中获取数据?

问题描述

我正在尝试创建一个将与数据库中的数据相补充的表单。它是这样工作的:客户输入公司编号,表单在数据库中搜索该编号是否存在,如果存在,则替换输入“公司名称”和输入“公司地址”中的值

我几乎做到了,但问题是公司的名称和地址显示为文本。我希望他们“出现在输入中,我做错了什么?

我只是使用 for 来执行此操作,我不知道如何正确执行此操作。

<html>
    <head>
        <meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> 
<link rel="stylesheet" href="lib/jquery-ui.css" />
<script src="lib/jquery-1.8.3.js"></script>
<script src="lib/jquery-ui.js"></script>
<script src="lib/jquery.ui.datepicker-pl.js"></script>
<script type='text/javascript' src='lib/jquery.bgiframe.min.js'></script>
<script type='text/javascript' src='lib/jquery.ajaxQueue.js'></script>
<script type='text/javascript' src='lib/thickbox-compressed.js'></script>
<script type='text/javascript' src='lib/jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="lib/jquery.autocomplete.css" />
<link rel="stylesheet" type="text/css" href="lib/lib/thickbox.css" />
<script>onload="window.parent.parent.scrollTo(0,0)"</script>

//There's the script to show date from database

    <script>
function showHint(str) {
    if (str.length == 0) { 
        document.getElementById("KonNaz").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("KonNaz").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "gethint.php?q=" + str, true);
        xmlhttp.send();
    }
    {
         if (str.length == 0) { 
        document.getElementById("KonAdr").innerHTML = "";
        return;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("KonAdr").innerHTML = this.responseText;
            }
        };
        xmlhttp.open("GET", "gethint2.php?q=" + str, true);
        xmlhttp.send();
    }

    }
}
</script>



</head>
<body>


//Theres a form

<form action="baza_danych_faktury.php" method="post" enctype="multipart/form-data" class="form-inline"> 

Kontrahent NIP (Company Number)</br>

    <form>
<div id="KonNaz"><input type="text" placeholder="np. 7740001454" name="KonNip" class="inputspecial" required onkeyup="showHint(this.value)"> </div> </br>
    </form>

Kontrahent nazwa (Company Name)</br>

<input type="text" placeholder="np. Polski Koncern Naftowy Orlen" name="KonNaz" id="KonNaz" class="inputspecial" required> </div> </br>

Kontrahent adres (Company Addres)</br>

<div id="KonAdr"><input type="text" placeholder="np. Katowice 40-847 UL. BOCHEŃSKIEGO 99" name="KonAdr" class="inputspecial" required> </div> </br>

(...)

</form>

在 gethint.php 中:

<?php 
                    $q = $_REQUEST["q"];
                    $dbhost = 'localhost';     
                    $dblogin = 'login';
                    $dbpass = 'password';
                    $dbbase = 'database_name';
                    mysql_connect($dbhost,$dblogin,$dbpass);
                    mysql_select_db($dbbase) or die("Błąd przy wyborze bazy danych");
                    mysql_query("SET CHARACTER SET UTF8");
                    $wynik = mysql_query("SELECT * FROM evdb_nip WHERE NIP = '$q' ")
                    or die('Błąd zapytania'); 
                    if(mysql_num_rows($wynik) > 0) { 
                     while($r = mysql_fetch_assoc($wynik)) {
                         echo $r[Nazwa_Kontrahenta];
                                                }             
                    }
                    ?>

标签: javascriptphpajaxformsinput

解决方案


在您的循环中,将所有值放入数组中。例如$myArray['address'] = 'my fabulous address'

之后,您可以像这样在字段中回显数组的值

<input type="text" placeholder="np. Katowice 40-847 UL. BOCHEŃSKIEGO 99" name="KonAdr" class="inputspecial" value="<?= $myArray['address'] ?>" required>

推荐阅读