一直试图找出如何将查询结果回显到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?
感谢您的关注。
答案 0 :(得分:1)
首先想到的是:你没有在示例中的任何地方包含jQuery库。 另外,请注意以下行中的逗号应为点:
E,的preventDefault();
如果这不是问题而只是草率复制/粘贴的结果,请确保您的$ .get()请求是否给你任何输出?
您可能还想更改以下内容:
$(“#search”)。live(“click”,function(e){
类似于:
$(“#search”)。on(“submit”,function(e){
因为#search的引用指向了form-tag而不是按钮