通过输入一个ID字段自动填充表单的字段

时间:2014-02-16 11:43:06

标签: jquery ajax jsp

我在jsp页面中有两个表单,考虑form1和form2。 form1具有ID纬度和经度字段以及保存按钮。表单2具有dataID日期ID纬度和经度字段。将form1保存在表中的数据库中。我需要以第二种形式输入ID字段,该字段应自动填充form1中的纬度经度字段。我如何使用jquery和ajax做到这一点?

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="insertData.jsp" action="post" >
DATA ID:<input type="text" name="data_id"><br>
East:<input type="text" name="east"><br>
North:<input type="text" name="north"><br>
<input type="submit" value="Save">
</form>
</body>
</html>

这是我的第一张表格。并存储在表格中。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="insertData.jsp" action="post" >
Some ID:<input type="text" name="some_id"><br>
date:<input type="text" name="date"><br>
DATA ID:<input type="text" name="data_id"><br>
East:<input type="text" name="east"><br>
North:<input type="text" name="north"><br>
<input type="submit" value="Save">
</form>

这是我的secon表单,其中我希望在表单中输入数据id后自动填充东和北的字段。如何使用第一个表单数据自动填充这些字段

javascript代码

var dataid = var _POST('dataid');

var host         = "xxxxxxxxxxxxxxx";
var user         = "yyyyyyyyyyyyyyy";
var password = "zzzzzzzzzzzzzzz";
var dbname   = "aaaaaaaaaaaaaa";

var cxn = mysqli_connect( host, user, password, dbname);
if (mysqli_connect_errno()) {alert( "No connection"  + "" +  mysqli_connect_error());}

var query = " SELECT * \
       FROM latlong \
       WHERE dataid = " + dataid + "";

var result = mysqli_query(cxn, query) OR  ("could not connect");

var json = {};
while (var row = mysqli_fetch_array(result))
{ 
 var bus = 
           {
            'dataid' : row['dataid'],
               'lat' : row['lat'],
              'long' : row['long']
            };
  array_push(json, bus);
}
alert( json_encode(json));

1 个答案:

答案 0 :(得分:1)

再次,我道歉。

  1. 你需要制作一个驻留在服务器上的php文件,这样当你调用它时,它会将数据返回给客户端。
  2. 这是一个建议的文件。它从POST接收dataid,我不知道你将如何发布dataid。

    然后你需要客户端ajax调用,php文件下面的提议:

    1. 找到输入'dataid'的方法
    2. 将其传递给ajax电话
    3. 解析使用.done函数返回的数据

      <? php
      
      $dataid = $_POST('dataid');
      
      $host         = "xxxxxxxxxxxxxxx";
      $user         = "yyyyyyyyyyyyyyy";
      $password = "zzzzzzzzzzzzzzz";
      $dbname   = "aaaaaaaaaaaaaa";
      
      $cxn = mysqli_connect( $host, $user, $password, $dbname);
      if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}
      
      $query = " SELECT * 
                 FROM latlong 
                 WHERE dataid = $dataid";
      
      $result = mysqli_query($cxn, $query) or die ("could not connect");
      
      $json = array();
      while ($row = mysqli_fetch_array($result))
        {
         $bus = array
                     (
                      'dataid' => $row['dataid'],
                         'lat' => $row['lat'],
                        'long' => $row['long']
                      );
         array_push($json, $bus);
      }
      echo json_encode($json);
      

      &GT;

      <input type='text' id='dataid' />
      <div id=latdiv></div>
      <div id=longdiv></div>
      
      $.ajax({
                 url: 'nameofyourphpfile.php',
                type: POST,
                data: { dataid: dataid },
            dataType: 'json',
              })
                .done(function(result) {
                                        $('#latdiv').html( result.lat );
                                        $('#longdiv').html( result.long);
                                        });
      
    4. 如果要将数据放入输入字段,则需要使用.val()而不是.html()。

      我不知道您网页的详细信息,但这会给您一个开始。