我来到这里时,对于尝试学习的网络开发知之甚少,所以我要求对我对这个问题的无知感到一些耐心。
如果您能向我展示我需要在我之前完成任务所需的逻辑步骤,那将会很棒。
在这里使用PHP。我需要弄清楚如何从一个页面/ Web应用程序和进程发送GET请求,并将其显示在另一个页面/ Web应用程序和进程中。
一个简单的例子:
有2个php页面,一个发送请求 - send.php,另一个处理并显示它display.php
send.php包含一个简单的表单来获取一些用户输入字符串并使用get方法将其发送到display.php
<form action="display.php" method="get">
<input type="text" name="userInput">
<input type="submit">
</form>
display.php接收字符串并将其用作某个函数的参数并回显它。
我需要执行哪些逻辑步骤才能在一个窗口中打开send.php,在另一个窗口中打开display.php,在表单中键入内容,按提交并在display.php窗口中查看结果而不是通常从send.php重定向到display.php?据我所知,AJAX允许我们与服务器通信,但结果仍然返回到同一页面。原谅我的无知,我寻求解决方案的逻辑步骤,也许是我目前没有意识到的某些技术或方法,需要研究并找到完成此任务的方法。
实际任务是使用库存管理系统:我们需要能够使用一台设备扫描条形码/ ID等,同时在另一个屏幕上查看有关项目的信息(想想:使用Android应用程序扫描条形码,将其发送至基于网络的库存系统,在平板电脑上打开或类似的东西,并在平板电脑上查看有关该项目的信息。)
注意:我们被明确告知不要使用java / scala,因为sys-admin不希望jvm在与库存系统相同的服务器上运行(看起来只有一个专用的服务器),我假设node.js也是虽然我不确定,但他们陷入了同一条船。
感谢您耐心处理完整的Web开发菜单:)
答案 0 :(得分:1)
您可以使用websockets,以及支持它的服务器,如node.js https://www.websocket.org/demos.html
通过长期民意调查通过PHP http://webcooker.net/ajax-polling-requests-php-jquery/
使用postMessage也可以 https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage
答案 1 :(得分:0)
让我们看看我是否有你。
您想要的是,当用户点击提交时,他会在同一页面打开display.php
文件而不重定向,添加新信息,然后返回send.php
页面?
嗯,我看到它的方式,你可以用一些javascript和CSS来做。
这是我的解决方案(我的意思是,这样做的方式)。
您需要的是在其中包含一个<div>
(或其他标记),其中包含<iframe>
,一些JavaScript函数(它们在客户端运行,而不是在服务器端运行),以及一些CSS。
让我们看看你的display.php
文件应该是什么样子:
<form action="display.php" method="get" target="display" onSubmit="load();">
<input type="text" name="userInput">
<input type="submit">
</form>
<div id="mydiv" class="hide">
<iframe name="display"></iframe>
</div>
请注意,我写了表单的目标等于iframe的名称,因此它将始终提交给iframe。并且,在表单中,它将在提交时进行javascript调用。另外,我在新div中添加了一个类来隐藏CSS内容。 CSS看起来像:
body, html{ /*to fix the page css*/
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
#mydiv{ /*this is how it should work*/
position: fixed;
width: 100%;
height: 100%;
z-index: 1000; /*the position of the div relatively to other elements, to be always in front of them*/
background-color: rgba(0,0,0,0.3); /*this will add an artistic background effect when loading the submit*/
}
.hide{ /*this class hide the element*/
display: none;
}
然后是你的JavaScript:
function load()
{
var div = document.getElementById("mydiv");
div.className = "";
}
function finish() //this will be called later, don't forget to give it parameters
{
var div = document.getElementById("mydiv");
div.className = "hide";
//do what you need to show the final result here
}
现在,在您的send.php
文件中,我相信您会在那里找到一个表单,因此您可以在其中进行类似的调用。它应该看起来像:
<form onSubmit="submitForm">
--your form contents--
</form>
它应该有一个新的javascript函数,如:
function submitForm()
{
parent.finish(); //this will call the iframe's parent function, don't forget to give it parameters and something to do.
return false; //this will stop the submit and the 'refresh page'
}
然后,你有你的东西。 我希望它适用于你。
答案 2 :(得分:0)
因此,在更深入地分析您的OP(原始帖子)后,我相信对您有用的是:
在send.php
中:使用Ajax将每个扫描的条形码存储到数据库中。这样做的原因是你不会在其他地方重定向。 AJAX只会查找执行所有存储工作的php文件(可以调用process.php)。
在display.php
中:从数据库中检索所有条形码并进行渲染。这可以通过嵌入式PHP直接完成,或者你想要多次这样做,使用AJAX。
使用此结构,您可以看到保存的所有条形码,无论您使用的是哪个窗口或设备。
答案 3 :(得分:-1)
我需要执行哪些逻辑步骤才能在一个窗口中打开send.php,在另一个窗口中打开display.php
试试这个:
<form action="display.php" method="get" target="_blank" >
<input type="text" name="userInput">
<input type="submit">
</form>