0

一直试图弄清楚如何将查询结果回显到 div 中的文本框。我有一个表单(见下文),它确实将结果放在我想要的文本框中,但没有回显到 div(称为“内容”)。经过一些编辑后,我在这里更新了我的 HTML 代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
</head>
<body>
<form id="search" method="post" action="rating.php">Miles <input name="miles" id="miles" type="text" /> <input name="search1" id="search1" class="btnButton" value="Search" type="submit" /></form>
<div id="content"></div>
<script type="text/javasript" src="jquery-1.9.0.min.js"></script>
<script type="text/javascript">// <![CDATA[
$(document).ready(function(){

//jquery click event
$("#search").on("submit", function(e){

   //disable default form submit postpage
   e.preventDefault();

   //make ajax call to the search.php parsing the search textbox value as query string
   $.get("rating.php?miles="+$("#miles").val(), function(result){

        //Result will be dumped in the div
        $("#content").html(result);

       });

   });

});
// ]]></script>
</body>
</html>

英里的值现在传递给 rating.php,我希望它在其中进行查询,然后将结果格式化为显示在 div 中的文本框格式:

<?php
$hostname = 'somehost.com';
$username = 'ratetable';
$password = 'mypassword';

$miles = (int) $_POST['miles'];

try 
{
$db = new PDO("mysql:host=$hostname;dbname=ratetable", $username, $password);

foreach($db->query("SELECT * FROM rates WHERE mileage<={$miles} ORDER BY mileage DESC LIMIT 1") as $row) {
 $result= "<input type='text' name='answer' value='" . $row['ratepermile'] . "'>'";
 echo $result;

   }
}         

catch (PDOException $e) {
  echo $e->getMessage();
  throw($e); 
}
?>

结果按照我想要的方式格式化,除了它没有被回显到脚本并放置在结果应该的位置。有没有办法可以使用 div 标签或以其他方式确保它转到特定的 div?

谢谢你的关注。

4

1 回答 1

1

首先想到的是:示例中的任何地方都没有包含 jQuery 库。另外,请注意下一行的逗号应该是一个点:

e,preventDefault();

如果这不是问题,而只是匆忙复制/粘贴的结果,那么确定您的 $.get() 请求会为您提供任何输出吗?

您可能还想更改以下内容:

$("#search").live("点击", function(e){

类似于:

$("#search").on("提交", function(e){

因为#search 的引用指向您的表单标签而不是按钮

于 2013-01-21T15:53:10.570 回答