gpt4 book ai didi

javascript - PHP 中的 Jquery div 填充只是重定向到 PHP 页面?

转载 作者:行者123 更新时间:2023-11-28 04:52:52 27 4
gpt4 key购买 nike

我试图从循环 PHP 变量中提取一个字符串,并在它更新到 div 时使用 jQuery 将其加载。

问题是,当满足条件时,它只是将我重定向到 PHP 页面,而不是从中提取信息并将该信息放入主 html 页面上的 div 中。

我还尝试将该字符串从 div 放入 JavaScript 函数 responsiveVoice.speak("string"); 但这也不起作用。

我尽力使我的问题格式尽可能清晰,并且我已遵循堆栈溢出建议以达到最佳理解。我试图提出好问题,但过去我提出的其他问题并没有受到好评。

编辑:修复了结束脚本标记和正文标记的位置。它不再有重定向到 PHP 页面的问题,但仍然无法运行 TTS。它有一个新问题;它不是根据更改刷新单个回显,而是一遍又一遍地打印回显。

这是index.html 文件:

<html>
<head>
</head>
<body>

<script src="http://code.responsivevoice.org/responsivevoice.js"></script>
<script>
var speek = document.getElementById("load_updates");
responsiveVoice.speak(speek);
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#load_updates').load('new3.php').fadeIn("slow");
}, 10000); // refresh every 10000 milliseconds
</script>

<div id="load_updates"></div>


</body>
</html>

这是后台循环new3.php文件:

<?php 
for($z=0;$z<2880;$z++) {
$frog = "15";
$tent = "2";
if ($frog >= $tent) {
echo "+ frog!";
echo "tent";
$sayit = "Hello! plus frog tent";
}
}
?>

为了简洁起见,我删除了 PHP 循环中发生更改的部分。

最佳答案

根据 ResponsiveVoice.JS API ,speak 方法采用字符串参数(以及可选的语音和选项参数)。

SPEAK(STRING TEXT, [STRING VOICE], [OBJECT PARAMETERS])

Starts speaking the text in a given voice.
text: String
The text to be spoken.
voice: String
Defaults to “UK English Female”. Choose from the available ResponsiveVoices.
parameters: Object
Used to add optional pitch (range 0 to 2), rate (range 0 to 1.5), volume (range 0 to 1) and callbacks.
Pitch, rate and volume may not affect audio on some browser combinations, older versions of Chrome on Windows for example.
1

示例中的代码正在传递对 DOM 元素的引用(即 var speek = document.getElementById("load_updates");)。使用 .innerHTML 传递该元素的文本内容, .text()

所以这一行:

responsiveVoice.speak(speek);

可以更新为:

responsiveVoice.speak(speek.innerHTML);

或者与 jQuery 方法保持一致:

responsiveVoice.speak($(speek).text());

也可以简化为以下内容,这将使上面的行变得不必要:

responsiveVoice.speak($('#load_updates').text());

请参阅 this PHPFiddle 中的演示- 只需单击标有“运行 - F9”的按钮即可。

phpFiddle 上的演示示例使用相同的文件名来发送异步请求(即 $('#load_updates').load('),因为似乎不可能有多个文件名) phpfiddle 上的文件。

它还利用$(document).ready()确保 DOM 在代码开始与 DOM 中的元素交互之前已准备就绪。另请注意,对 .load() 的调用对函数 speakInnerHTML() 的调用作为第二个参数传递,以便新文本在加载后将被朗读。

更新:

.load()当对象作为第二个参数传递时,以 POST 形式发送请求,我更新了 phpFiddle 上的示例以传递一个简单的对象。

$('#load_updates').load('<?php echo $_SERVER['PHP_SELF'];?>', {postData: 1}, speakInnerHTML).fadeIn("slow");

然后在 PHP 代码中检查 POST 数据:

if (isset($_POST['postData'])) {
echo date('Y-m-d h:i:s');
<小时/>

1 https://responsivevoice.org/api/

关于javascript - PHP 中的 Jquery div 填充只是重定向到 PHP 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42771918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com