Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用setvalue运行循环_Javascript_Php_Html_Setvalue - Fatal编程技术网

Javascript 使用setvalue运行循环

Javascript 使用setvalue运行循环,javascript,php,html,setvalue,Javascript,Php,Html,Setvalue,HTML: 客户怎么说 爱PROBLAM.COM的正面评论 javascript: setInterval(函数() { document.getElementById(‘推荐’).innerHTML=“”; }, 3000); 实际上,我要做的是每隔3秒从存储在$alldata数组中的值更改“推荐”的文本 问题在于php变量$i没有得到更新。它只保留1。你不能像那样混合使用PHP和Javascript。PHP首先运行,生成一些数据供Javascript解释。从Javascript的

HTML:


客户怎么说
爱PROBLAM.COM的正面评论

javascript:


setInterval(函数()
{
document.getElementById(‘推荐’).innerHTML=“”;
}, 3000);

实际上,我要做的是每隔3秒从存储在
$alldata
数组中的值更改“推荐”的文本


问题在于php变量
$i
没有得到更新。它只保留1。

你不能像那样混合使用PHP和Javascript。PHP首先运行,生成一些数据供Javascript解释。从Javascript的角度来看,它只能看到:

<script type="text/javascript">
    setInterval(function()
        {
            document.getElementById('testimonial').innerHTML = "some data";
        }, 3000);
</script>

setInterval(函数()
{
document.getElementById('commential').innerHTML=“一些数据”;
}, 3000);
您需要将所有数据传递给Javascript,以便它可以对其进行迭代


.

你不能像那样混合使用PHP和Javascript。PHP首先运行,生成一些数据供Javascript解释。从Javascript的角度来看,它只能看到:

<script type="text/javascript">
    setInterval(function()
        {
            document.getElementById('testimonial').innerHTML = "some data";
        }, 3000);
</script>

setInterval(函数()
{
document.getElementById('commential').innerHTML=“一些数据”;
}, 3000);
您需要将所有数据传递给Javascript,以便它可以对其进行迭代


.

您混合了服务器端逻辑(PHP)和客户端逻辑(JavaScript)

当客户端请求您的web页面时,PHP呈现包含HTML、CSS、JavaScript和一些其他内容的内容,web服务器将这些内容发送到客户端

web浏览器接收这些内容,然后执行JavaScript并根据样式呈现HTML

您需要在服务器端生成JavaScript
setInterval
所需的所有内容,并调整JavaScript逻辑以迭代这些数据

逻辑可能如下所示。我不熟悉PHP,不确定这是否有效。JavaScript不会检查是否已使用所有数据

<script type="text/javascript">
    <?php
    function get_data($e) {
        return($e['text']);
    }
    $data = array_map("get_data", $alldata);
    ?>
    var js_alldata = <?php echo json_encode($data) ?>;
    var i = 1;
    setInterval(function()
        {
            document.getElementById('testimonial').innerHTML = js_alldata[i % js_alldata.length];
            i++;
        }, 3000);

var js_alldata=;
var i=1;
setInterval(函数()
{
document.getElementById('commential').innerHTML=js_alldata[i%js_alldata.length];
i++;
}, 3000);

您混合了服务器端逻辑(PHP)和客户端逻辑(JavaScript)

当客户端请求您的web页面时,PHP呈现包含HTML、CSS、JavaScript和一些其他内容的内容,web服务器将这些内容发送到客户端

web浏览器接收这些内容,然后执行JavaScript并根据样式呈现HTML

您需要在服务器端生成JavaScript
setInterval
所需的所有内容,并调整JavaScript逻辑以迭代这些数据

逻辑可能如下所示。我不熟悉PHP,不确定这是否有效。JavaScript不会检查是否已使用所有数据

<script type="text/javascript">
    <?php
    function get_data($e) {
        return($e['text']);
    }
    $data = array_map("get_data", $alldata);
    ?>
    var js_alldata = <?php echo json_encode($data) ?>;
    var i = 1;
    setInterval(function()
        {
            document.getElementById('testimonial').innerHTML = js_alldata[i % js_alldata.length];
            i++;
        }, 3000);

var js_alldata=;
var i=1;
setInterval(函数()
{
document.getElementById('commential').innerHTML=js_alldata[i%js_alldata.length];
i++;
}, 3000);

我已经编写了此代码,它正在运行。正如上面的人告诉您的,服务器端无法处理客户端迭代或设置间隔,因此您应该提前发送整个数据

例如:

$array = array();
$array[0]['text'] = 'hi';
$array[1]['text'] = 'hey';
$array[2]['text'] = 'hou';
$js_array = json_encode($array);

?>

<p id="testimonial"><?php echo $array[0]['text'] ?></p>

<script>
    var json;
    var i=1;

    json = <?php echo $js_array; ?>

    setInterval(function()
    {
        document.getElementById('testimonial').innerHTML = json[i]['text'];
        i++;
    }, 3000);
    console.log(json);
</script>
$array=array();
$array[0]['text']='hi';
$array[1]['text']='hey';
$array[2]['text']='hou';
$js_array=json_encode($array);
?>

var-json; var i=1; json= setInterval(函数() { document.getElementById('commential').innerHTML=json[i]['text']; i++; }, 3000); log(json);
我已经编写了此代码,它正在运行。正如上面的人告诉您的,服务器端无法处理客户端迭代或设置间隔,因此您应该提前发送整个数据

例如:

$array = array();
$array[0]['text'] = 'hi';
$array[1]['text'] = 'hey';
$array[2]['text'] = 'hou';
$js_array = json_encode($array);

?>

<p id="testimonial"><?php echo $array[0]['text'] ?></p>

<script>
    var json;
    var i=1;

    json = <?php echo $js_array; ?>

    setInterval(function()
    {
        document.getElementById('testimonial').innerHTML = json[i]['text'];
        i++;
    }, 3000);
    console.log(json);
</script>
$array=array();
$array[0]['text']='hi';
$array[1]['text']='hey';
$array[2]['text']='hou';
$js_array=json_encode($array);
?>

var-json; var i=1; json= setInterval(函数() { document.getElementById('commential').innerHTML=json[i]['text']; i++; }, 3000); log(json);
将php数组中保存的数据写入javascript数组,然后使用javascript函数引用该javascript数组。@RamRaider-我正在处理这个问题。如果我在这方面遇到问题,我会回复你。@RamRaider-我不能做转换。你能告诉我怎么做吗?嗨@Nick,下面的一些人给出了替代解决方案,他们还说你不能将服务器端和客户端混合使用!看看Marcos Segovia的代码-看起来它会满足您的需要将php数组中保存的数据写入javascript数组,然后用javascript函数引用该javascript数组。@RamRaider-这是我正在做的事情。如果我在这方面遇到问题,我会回复你。@RamRaider-我不能做转换。你能告诉我怎么做吗?嗨@Nick,下面的一些人给出了替代解决方案,他们还说你不能将服务器端和客户端混合使用!看看Marcos Segovia的代码-看起来它会满足您的需要,这是我目前正在研究的。但我问这个问题是出于好奇。这是我目前正在研究的问题。但我问这个问题是出于好奇。这真的很有帮助。非常感谢你,伙计。现在,如果I的值大于4,我再次希望将I重置为1。我在I++之后使用这段代码:-如果(I>4){I=1;}这是reall