PHP不起作用

时间:2013-11-20 17:22:10

标签: javascript php html5

我的代码如下:

jQuery.post("test1send.php", { browName : browser, timeCan: testTimeCanvas , timeSVG: testTimeSVG });

window.location.href = 'http://localhost/start/prosteTest2.html';

.php文件如下所示:

<?php
 $browName = $_POST['browName'];
 $timeCan = $_POST['timeCan'];
 $timeSVG = $_POST['timeSVG'];

    if($browName=='Opera'){
    $rowsCount = count(file('Data\Test1\Test1Opera.csv'));
    $fp = fopen('Data\Test1\Test1Opera.csv', 'a');
    fwrite($fp, $rowsCount);
    fwrite($fp, ',');
    fwrite($fp, $timeCan);
    fwrite($fp, ',');
    fwrite($fp, $timeSVG);
    fwrite($fp, "\r\n");
    fclose($fp);
    }else if($browName=='Firefox'){
    $rowsCount = count(file('Data\Test1\Test1Firefox.csv'));
    $fp = fopen('Data\Test1\Test1Firefox.csv', 'a');
    fwrite($fp, $rowsCount);
    fwrite($fp, ',');
    fwrite($fp, $timeCan);
    fwrite($fp, ',');
    fwrite($fp, $timeSVG);
    fwrite($fp, "\r\n");
    fclose($fp);
    }
 ?>

它应该将变量发送到php并加载下一页。 PHP应该将变量保存到.csv文件,但它不起作用。如果没有“window.location.href”它可以正常工作,但是当有命令转到下一页时,PHP什么都不做。首先执行PHP然后转到下一页需要一些延迟吗?

2 个答案:

答案 0 :(得分:3)

将window.location.href放在帖子的成功回调中 - http://api.jquery.com/jQuery.post/

jQuery.post("test1send.php", { browName : browser, timeCan: testTimeCanvas , timeSVG: testTimeSVG }, function(){ window.location.href = 'http://localhost/start/prosteTest2.html'; });

答案 1 :(得分:1)

是的,需要延迟。执行window.location.href = ...时,您告诉浏览器在有时间处理之前取消当前请求。

最容易的事情可能是

jQuery.post("test1send.php", { ...}).done(function() {
    window.location.href = ...
});

虽然有许多等效技术。如果帖子失败,您可能也希望使用.fail()处理该帖子。