如何在不重新加载的情况下刷新PHP页面

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (392)

我有一个PHP页面调用js.php,我想刷新页面而不重新加载整个页面。我知道这个问题被问了太多次但我不能理解它。我尝试了下面的代码,但它不起作用。我也想问,这个代码应放在哪里.js.php或其他文件?是否还有其他方法可以在不重新加载的情况下刷新页面?它相当长但最终我想刷新页面,特别是2个变量,profittext和sumtext请忽略斜杠代码。

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的

<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>
提问于
用户回答回答于

这是因为你的ajax请求转到同一页面。您可以将ajax发送到其他php(test.php)文件在test.php中只生成要在div中显示的内容

<div id="load_me">
$data
</div>

只是回显$ data

并退出。

更改$('#load_me')。load('test.php',function().....

用户回答回答于

您可以将此代码保存在Js.php中

如果你没有得到想要的结果,t ## en你可以使用ctr + shift + j尝试使用filrebug和chjeck来解决任何javascript错误

或者使用iframe。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励