1

卡在试图加载一组 PHP 脚本但传递 get 变量参数的 jquery/javascript 函数上。顺便说一句,这将在 5 秒后自动发生。在这里发帖的新手,但已经阅读了很多帖子,似乎无法确切地找到我做错了什么。

此功能有效:

function LoadMyPhpScript()
{
    $('#MyDiv').load('hello.php');
}
setTimeout(LoadMyPhpScript,5000); 

此功能不起作用:

function LoadMyPhpScript2(cPhpParamString)
{
    var strURL = 'hello.php';
    strURL = strURL + cPhpParamString;
    $('#MyDiv2').load(strURL);
}
setTimeout(LoadMyPhpScript2('?MyVar1=0&MyVar2=1'),5000); 

这是hello.php

<?php
echo '<p>Hello, I am loaded with get values of MyVar1=' . $_GET['MyVar1'] . ', MyVar2=' . $_GET['MyVar2'] . '</p>';
?>

注意:这只是一个模型,将在生产中使用正则表达式来验证获取等。

解决

这就是我最终的结果,谢谢!

function LoadMyPhpScript1(cPhpParamString)
{
    $('#MyDiv1').load('hello.php'+cPhpParamString);
}
setTimeout(function() { LoadMyPhpScript1('?MyVar1=0&MyVar2=1'); },5000); 
4

2 回答 2

5

当你这样做时:

LoadMyPhpScript2('?MyVar1=0&MyVar2=1')

您正在执行函数并将结果传递给setTimeout

试试这个:

setTimeout(function() { LoadMyPhpScript2('?MyVar1=0&MyVar2=1'); },5000); 

但是,像这样发送 url 查询字符串是一种奇怪的方式。像这样的东西可能会更好:

function LoadMyPhpScript2(myVar1, myVar2)
{
    var strURL = 'hello.php';
    $('#MyDiv2').load(strURL, { myVar1: myVar1, myVar2: myVar2 });
}
setTimeout(function() { LoadMyPhpScript2(0, 1); },5000); 
于 2013-10-03T19:10:06.973 回答
0

最好尝试这种方式:

文件 help3.html:

<html>
    <head>
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
    <script type='text/javascript'>
    function LoadMyPhpScript2(cPhpParamString)
    {
        var strURL = 'help3.php';
        strURL = strURL + cPhpParamString;

      $.ajax({
      url: strURL
      }).done(function(data) { // data what is sent back by the php page
       $('#MyDiv').html(data); // display data
      });


    }
    setTimeout(LoadMyPhpScript2('?MyVar1=0&MyVar2=1'),5000); 

    </script>
    </head>

    <body>

      <div id="MyDiv">

      </div>

    </body>
    </html>

文件 help3.php:

<?php
echo '<p>Hello, I am loaded with get values of MyVar1=' . $_GET['MyVar1'] . ', MyVar2=' . $_GET['MyVar2'] . '</p>';
?>

在我的本地主机上进行测试,并将两个文件放在同一个文件夹中。

于 2013-10-03T19:21:13.010 回答