现在已经开始了几天。我正在创建一个上市网站。这些列表来自我们网站上的直接列表创建(使用数据库)。此外,我们还会以数据Feed 的形式从其他网站获取商家信息。
首先,有人做过同样的工作吗?我想知道这是否可能。 我们是否可以从两个来源(从数据库直接列出和从其他网站获取数据)获取列表并在同一页面上显示所有内容(例如,第a页)?
如果是,那么我们如何使用单一搜索表单搜索列表结果?我假设需要同时使用get和post方法。因为我们使用的数据馈送得到如下
<form name="Search_Form" method="get" action="http://a.com/a/a.php" onsubmit="return checkForm()">
并发布数据库中的直接列表,如下所示
<form method="post" action="a.php">
任何建议都将受到高度赞赏。
谢谢堆
答案 0 :(得分:3)
您应该使用$_REQUEST
全局变量。这将保留传递给脚本的$_POST
或$_GET
项。你可以在这里阅读更多内容...... http://php.net/manual/en/reserved.variables.request.php
答案 1 :(得分:3)
你不能同时进行GET和POST,它们是两种不同的HTTP方法。您正在向URL发出GET请求或POST请求。
如果您需要从外部数据源中抓取数据,那就是GET。如果用户正在您的网站上搜索,那么通常也是GET(因为如果查询参数在URL中,那么可以缓存,搜索引擎等等)。
在您的方案中,服务器端PHP脚本将通过cURL对外部数据源执行GET请求,并将结果保存到变量中;你也可以在这个脚本中查询你的数据库;然后最后使用用户提交的值过滤结果。
我不确定POST会在哪里发生,除非我误解了你的问题。
答案 2 :(得分:2)
而不是让表单提交您的请求,而您的checkForm例程是否使用ajax单独调用?然后,您可以将结果组合到您正在执行的任何显示中。记得让checkForm返回false;
我注意到你还没有接受答案,而且我的模糊不清。如果您要做的是使用GET为一个来收集来自两个来源的数据而为另一个来源收集POST,那么您可以这样做。我使用ajax包含了一个示例javascript。当您单击按钮时,checkForm函数将发送POST请求,并在完成后将GET发送到第二个服务。结果可以组合在一起,它将向用户显示它的一个操作。这是工作代码(当然,您必须根据您的服务进行调整)。
<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Form</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script type="text/javascript">
var postData = null;
$(document).ready(function() {
$("#formDiv").show();
$("#tableDiv").hide();
});
function checkForm()
{
postData = $("#Search_Form").serialize();
alert(postData);
$.ajax({
type: "POST",
url: "http://localhost:8080/FirstAjaxJspTest/AjaxService",
data: postData, // form's input turned to parms
contentType: "text",
success: function(data)
{
tableBuild(data);
},
complete: function(data) {
nextAjaxCall();
},
failure: function(msg)
{
alert("Failure: " + msg);
}
});
return false;
}
function nextAjaxCall()
{
$.ajax({
type: "GET",
url: "http://localhost:8080/FirstAjaxJspTest/AjaxService",
data: postData, // form's input turned to parms
contentType: "text",
success: function(data) {
tableBuild(data);
tableDisplay();
},
failure: function(msg) {
alert("Failure: " + msg);
}
});
return false;
}
function tableBuild(data)
{
data.forEach(function(entry) {
$("#resultsTable").append($("<tr><td>" + entry.name + "</td><td>" + entry.address + "</td></tr>"));
});
return;
}
function tableDisplay()
{
$("#formDiv").hide();
$("#tableDiv").show();
return;
}
</script>
</head>
<body>
<div id="formDiv">
<form id="Search_Form">
Name:<br/>
<input type="text" id="name" name="name" /><br/>
SSN:<br/>
<input type="text" id="ssn" name="ssn" /><br/><br/>
<button type="button" onclick="return checkForm()">Submit</button>
</form>
</div>
<div id="tableDiv">
<table id="resultsTable">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
</thead>
</table>
</div>
</body>
</html>
答案 3 :(得分:0)
<table>
<c:forEach var="w" items="${workers_data}">
<c:url var="workerLink" value="WorkerController1">
<c:param name="action" value="LOAD" />
<c:param name="workerId" value="${w.id}" />
</c:url>
<c:url var="deleteLink" value="WorkerController2">
<c:param name="action" value="DELETE" />
<c:param name="workerId" value="${w.id}" />
</c:url>
<tr>
<td>${w.id}</td>
<td>${w.name}</td>
<td>${w.age}</td>
<td>${w.salary}</td>
<td><a href="${workerLink}">Update</a> <a
href="${deleteLink}"
onclick="if (!(confirm('Delete worker?'))) return false">
Delete</a><br></td>
</tr>
</c:forEach>
</table>