javascript 如何在不重新加载的情况下刷新 PHP 页面
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18307408/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to refresh a PHP Page without reload
提问by nigel
I have a PHP page called js.php
and i want to refresh the page without reloading the entire page. I know this question has been asked too many times but I just cant understand it. I tried the code below but its not working. And i also wanna ask, where is this code supposed to be placed in. js.php or another file?? Is there any other way of making the page refresh without reload? Its rather long but ultimately i want to refresh the page , specifically 2 variables , profittext and sumtextPlease ignore the slash codes.
我有一个被调用的 PHP 页面js.php
,我想刷新页面而不重新加载整个页面。我知道这个问题已经被问过太多次了,但我就是无法理解。我尝试了下面的代码,但它不起作用。我也想问一下,这段代码应该放在js.php还是其他文件中??有没有其他方法可以在不重新加载的情况下刷新页面?它相当长,但最终我想刷新页面,特别是 2 个变量,profittext 和 sumtext请忽略斜线代码。
js.php
js.php
<?php
//error_reporting(0);//on if need
//require "core/init.php";
//protectpage();
$bidpricepl='';
$offerpricepl='';
$sum='';
$profitText =0;
$sumText=0;
?>
<!DOCTYPE html>
<html>
<head>
<h2>Trade Page</h2>
<script type="text/JavaScript">
<!--
//function timedRefresh(timeoutPeriod) {
//setTimeout("location.reload(true);",timeoutPeriod);
//}
// -->
</script>
</head>
<body onload="JavaScript:timedRefresh(2000);">
<script>
function openWin()
{
myWindow=window.open('tradeform.php','pop','width=600,height=600');
myWindow.focus();
}
function openWin1()
{
myWindow=window.open('tradehistory.php','pop','width=1000,height=600');
myWindow.focus();
}
</script>
</head>
<body>
<table style="border:1px solid black;">
<tr>
<th style="border:1px solid black;">User Name</th><th style="border:1px solid black;">Balance</th>
</tr>
<tr>
<td style="border:1px solid black;">Eg.SEYAN</td><td style="border:1px solid black;">Eg. 50000 </td>
</tr>
</table>
<input style="display:inline" type="button" value="Create New Order" onclick="openWin()" />
<input style="display:inline" type="button" value="Trade History" onclick="openWin1()" />
<link rel="stylesheet" type="text/css" href="truefxhp.css" />
<iframe src="http://webrates.truefx.com/rates/webWidget/trfxhp.jsp?c=EUR/USD,USD/JPY,USD/CAD,EUR/JPY,EUR/CHF,GBP/USD,AUD/USD,USD/CHF" width="400" height="400" seamless></iframe>
</body>
</html>
<table style="border:1px solid black;">
<tr>
<th style="border:1px solid black;">User Name</th><th style="border:1px solid black;">Balance</th><th style="border:1px solid black;">Equity</th>
</tr>
<tr>
<td style="border:1px solid black;">SEYAN</td><td style="border:1px solid black;">50000 </td><td style="border:1px solid black;">50000 </td>
</tr>
</table>
<?php
echo "<br>";
require_once 'connect.php';
include 'start.php';
include 'functions.php';
$query = "SELECT * FROM opentrades"; //You don't need a ; like you do in SQL
$result = mysql_query($query);
echo "<table border = '1px'>"; // start a table tag in the HTML
echo "<tr><td>" . "Order Number" . "</td><td>" . "Selection" . "</td><td>" . "Date" . "</td><td>" . "Type" . "</td><td>" . "Size" . "</td><td>" . "Bid Price" . "</td><td>" . "Offer Price" . "</td><td>" ."Stop Loss" . "</td><td>" . "Take Profit" . "</td><td>" ."Profit/Loss(USD)"."</td><td>" ."Close"."</td></tr>" ; //$row['index'] the index here is a field name
while($row = mysql_fetch_assoc($result)){ //Creates a loop to loop through results
if ($row['selection']=='eur/usd')// TO RETRIEVE BID AND OFFER FOR EACH ROW
{
$bidpricepl=$bid;
$offerpricepl=$bid1;
}
elseif ($row['selection']=='usd/jpy')
{
$bidpricepl=$bid2;
$offerpricepl=$bid3;
}
elseif ($row['selection']=='usd/cad')
{
$bidpricepl=$bid4;
$offerpricepl=$bid5;
}
elseif ($row['selection']=='eur/jpy')
{
$bidpricepl=$bid6;
$offerpricepl=$bid7;
}
elseif ($row['selection']=='eur/chf')
{
$bidpricepl=$bid8;
$offerpricepl=$bid9;
}
elseif ($row['selection']=='gbp/usd')
{
$bidpricepl=$bid10;
$offerpricepl=$bid11;
}
elseif ($row['selection']=='aud/usd')
{
$bidpricepl=$bid12;
$offerpricepl=$bid13;
}
elseif ($row['selection']=='usd/chf')
{
$bidpricepl=$bid14;
$offerpricepl=$bid15;
}
if ($row['type']=="buy")
{
//$last3charsoffer = substr($row['offerprice'], -6);
//$offernodecimal = str_replace('.', '', $last3charsoffer);
//$last3charsoffer1 = substr($offerpricepl, -6);
//$offernodecimal1 = str_replace('.', '', $last3charsoffer1);
//$pips2 = ltrim($pips2, '0');
//$calcpips2=$calcpips/$minipipskiller;
//$last3charsoffer = substr($row['offerprice'], -6);
//$offernodecimal = str_replace('.', '', $last3charsoffer);
//$last3charsoffer1 = substr($offerpricepl, -6);
//$offernodecimal1 = str_replace('.', '', $last3charsoffer1);
//$minipipskiller='10';
//$offeropen=$row['offerprice'];// to define variable
//$pips=$offerpricepl-$offeropen;// to calculate difference STEP 1
//$calcpips = str_replace('.', '', $pips); //removing the deci
//$calcpips = ltrim($calcpips, '0');// remove zeros in front
//$calcpips2=$calcpips/$minipipskiller;// to divide by 10 to cut mini pips
$minipipskiller='10';
$offeropen=$row['offerprice'];
$pips=$offerpricepl-$offeropen;
$closedb=$offeropen;
$pips1=round($pips, 6);
$pips2 = str_replace('.', '', $pips1);
if ($pips2<0)
{
$pips2 = str_replace('-', '', $pips2);
$pips2 = ltrim($pips2, '0');
$pips2 = -1 * abs($pips2);
}
else {
$pips2 = ltrim($pips2, '0');
}
$pips3=$pips2/$minipipskiller;
}// PIP COUNTING
elseif ($row['type']=="sell")//FOR PIP COUNTING
{
//$last3charsbid = substr($row['bidprice'], -6);
//$bidnodecimal = str_replace('.', '', $last3charsbid);
//$last3charsbid1 = substr($bidpricepl, -6);
//$bidnodecimal1 = str_replace('.', '', $last3charsbid1);
$minipipskiller='10';
$bidopen=$row['bidprice'];
$pips=$bidopen-$bidpricepl;
$closedb=$bidopen;
$pips1=round($pips, 6);
$pips2 = str_replace('.', '', $pips1);
if ($pips2<0)
{
$pips2 = str_replace('-', '', $pips2);
$pips2 = ltrim($pips2, '0');
$pips2 = -1 * abs($pips2);
}
else {
$pips2 = ltrim($pips2, '0');
}
$pips3=$pips2/$minipipskiller;
}
//echo $pips3;
$ticksize= "0.0001";// FOR PROFIT AND LOSS
$lot1 = "100000";
$sizecalc=$row['size'] * $lot1;
if ($row['type']=="buy")
{
$profitandloss=$sizecalc*$ticksize*$pips3; //per TRADE
}
if ($row['type']=="sell")
{
$profitandloss=$sizecalc*$ticksize*$pips3; //per TRADE
}
//echo $lot1;
//echo $ticksize;
$zero= '0';
//if($profitandloss<$zero){
// echo "<div style=\"color: red;\">$profitandloss</div>";
//}
//elseif ($profitandloss>$zero){
// echo "<div style=\"color: green;\">$profitandloss</div>";
//}
if($profitandloss<$zero) {
$profitText = "<div style=\"color: red;\">$profitandloss</div>";
} elseif ($profitandloss>$zero) {
$profitText = "<div style=\"color: green;\">$profitandloss</div>";
}
// for profit and loss counting
$sum+= $profitandloss;
//
echo "<tr><td>" . $row['trade_id'] .
"</td><td>" . $row['selection'] .
"</td><td>" . $row['date'] .
"</td><td>" . $row['type'] .
"</td><td>" . $row['size'] .
"</td><td>" . $row['bidprice'] .
"</td><td>" . $row['offerprice'] .
"</td><td>" . $row['stoploss'] .
"</td><td>" . $row['takeprofit'] .
"</td><td>" . $profitText .
"</td><td><a href ='delete.php?id=".
$row['trade_id']."'>X</a>
</td></tr>";
$profitandloss=0;
if($sum<$zero) {
$sumText = "<div style=\"color: red;\">$sum</div>";
} elseif ($sum>$zero) {
$sumText = "<div style=\"color: green;\">$sum</div>";
}
}
echo "</table><br>";
//$result_array = $codes->result_array();
//$results = array();
//$today = time();
//foreach($codes->result_array() as $row)
//{
// if(strtotime($row['exp_date']) <= $today)
// {//-- Keep this
// $results[] = $row;
//var allLinks = document.links;
// Bind the event handler to each link individually
//for (var i = 0, n = allLinks.length; i < n; i++) {
//allLinks[i].addEventListener('click', function (event) {});
// allLinks[i].onclick = function () {
// Do something
?>
JavaScript
JavaScript
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
$(document).ready(function() {
var reloadData = 0; // store timer
load data on page load, which sets timeout to reload again
loadData();
});
function loadData() {
$('#load_me').load('js.php', function() {
if (reloadData != 0)
window.clearTimeout(reloadData);
reloadData = window.setTimeout(loadData, 1000)
}).fadeIn("slow");
}
</script>
</head>
<body>
<div id="load_me"></div>
</body>
</html>
回答by harish
You can keep this code in Js.php
您可以将此代码保留在 Js.php 中
If you are not getting desired results, t## en you can try filrebug and chjeck for any javascript errors using ctr+shift+j
如果你没有得到想要的结果,t## en 你可以尝试 filrebug 并使用 ctr+shift+j 检查任何 javascript 错误
Or else use iframe.
或者使用 iframe。
回答by jeff
There is an error in your page which will prevent the script from workin
您的页面中存在错误,这将阻止脚本工作
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js">
$(document).ready(function() {
var reloadData = 0; // store timer
// ----- load data on page load, which sets timeout to reload again
loadData();
});
function loadData() {
$('#load_me').load('js.php', function() {
if (reloadData != 0)
window.clearTimeout(reloadData);
reloadData = window.setTimeout(loadData, 1000)
}).fadeIn("slow");
}
</script>
</head>
<body>
<div id="load_me"></div>
</body>
</html>
See the line marked // -----
查看标记为 // ----- 的行
回答by MaveRick
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
function loadData() {
$('#load_me').load('js.php', function() {
if (window.reloadData != 0)
window.clearTimeout(window.reloadData);
window.reloadData = window.setTimeout(loadData, 1000)
}).fadeIn("slow");
}
window.reloadData = 0; // store timer load data on page load, which sets timeout to reload again
loadData();
});
</script>
</head>
<body>
<div id="load_me"></div>
</body>
</html>
回答by harish
Its because your ajax request going to same page. You can send ajax to other php(test.php) file In test.php just generate content you want to show in your div
这是因为您的 ajax 请求转到同一页面。您可以将 ajax 发送到其他 php(test.php) 文件在 test.php 中只需生成要在 div 中显示的内容
<div id="load_me">
$data
</div>
just echo $data
只是回显 $data
and exit.
并退出。
change $('#load_me').load('test.php', function().....
更改 $('#load_me').load('test.php', function().....
回答by Navneet Garg
You need to use ajax for that use jquery load function for this Check here
您需要为此使用 ajax 使用 jquery 加载功能检查这里
回答by paskalnikita
Simply use AJAX (Asynchronous JavaScript And XML). Click here for more info
只需使用 AJAX(异步 JavaScript 和 XML)。请点击这里获取更多信息
You not able to use PHP for specifiec parts of page, without refreshing full page
您无法将 PHP 用于页面的特定部分,而无需刷新整个页面