jquery结果未在同一页面上回显到div

时间:2013-01-21 15:32:43

标签: php

一直试图找出如何将查询结果回显到div中的文本框。我有一个表单(见下文),它确实将结果放在我想要的文本框中,但不会回显到div(称为'content')。经过一些编辑后,我在这里更新了我的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?

感谢您的关注。

1 个答案:

答案 0 :(得分:1)

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

  

E,的preventDefault();

如果这不是问题而只是草率复制/粘贴的结果,请确保您的$ .get()请求是否给你任何输出?

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

  

$(“#search”)。live(“click”,function(e){

类似于:

  

$(“#search”)。on(“submit”,function(e){

因为#search的引用指向了form-tag而不是按钮