Javascript HTML表单文本到语音表示文件名和PHP,双重表单
我正在制作一个网页,它接受HTML表单输入,使用PHP在循环中进行处理,然后使用jQuery在Javascript HTML表单文本到语音表示文件名和PHP,双重表单,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我正在制作一个网页,它接受HTML表单输入,使用PHP在循环中进行处理,然后使用jQuery在div中显示PHP echo输出,然后TTS使用ResponsiveVoiceJS发出消息。 现在可以看到的问题是,在加载页面时,TTS开始在循环中说出网页文件名和一些随机PHP,然后将表单显示两次。 它不应该这样做 由于我不确定代码的哪一部分导致了问题,以下是完整的代码: <html> <head> </head> <body> <form act
div
中显示PHP echo输出,然后TTS使用ResponsiveVoiceJS发出消息。
现在可以看到的问题是,在加载页面时,TTS开始在循环中说出网页文件名和一些随机PHP,然后将表单显示两次。
它不应该这样做
由于我不确定代码的哪一部分导致了问题,以下是完整的代码:
<html>
<head>
</head>
<body>
<form action="<?php
echo $_SERVER['PHP_SELF'];
?>" method="post">
What is your URL? <input type="text" name="pastedurl"><br>
What is your minimum interval? <input type="text" name="interval"><br>
<input type ="submit">
</form>
<?php
set_time_limit(18000);
if (isset($_POST['submit']))
{
// echo "stopped here";
// die; //THIS DOESN'T WORK EITHER
$pastedlink = $_POST['pastedurl'];
$pastedlink2 = $_POST['pastedurl'];
$rate = $_POST['interval'];
parse_url($_POST['pastedurl'], PHP_URL_HOST);
if (parse_url($_POST['pastedurl'], PHP_URL_HOST) == 'www.instructables.com')
{
for ($z = 0; $z < 2880; $z++)
{
$tutorial_json = file_get_contents($pastedlink);
$tutorial_array = json_decode($tutorial_json, true);
$oldviews = $tutorial_array['views'];
sleep(30);
$tutorial_json2 = file_get_contents($pastedlink);
$tutorial_array2 = json_decode($tutorial_json2, true);
$currentviews = $tutorial_array2['views'];
$viewcount1 = (int) $oldviews;
$viewcount2 = (int) $currentviews;
$change = $viewcount2;
$change -= $viewcount1;
$rateasint = (int) $rate;
if ($change >= $rateasint)
{
$sayit = "Alert! Your Tutorial has gained " . $change . " more views";
echo $sayit;
}
}
}
else
{
exit("Error: URL submitted was not from www.instructables.com");
}
}
?>
<script src="http://code.responsivevoice.org/responsivevoice.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
<script>
$(document).ready(function(readyEvent) {
speakInnerHTML();
});
function speakInnerHTML() {
var speek = document.getElementById("load_updates");
responsiveVoice.speak(speek.innerHTML);
}
</script>
<script type="text/javascript">
var auto_refresh = setInterval(
function ()
{
$('#load_updates').load('<?php
echo $_SERVER['PHP_SELF'];
?>',speakInnerHTML).fadeIn("slow");
}, 10000); // refresh every 10000 milliseconds
</script>
<div id="load_updates"> </div>
</body>
</html>
法代因(“慢”);
}, 10000); // 每10000毫秒刷新一次
很抱歉格式化不好,我是一个noob,不知道格式化这些编程语言的方法
下面是一段错误发生的视频:
1.
die; //THIS DOESN'T WORK EITHER
isset($_POST['submit'])
die()
2.
die; //THIS DOESN'T WORK EITHER
isset($_POST['submit'])
这不起作用,因为存在名为submit
的变量
要解决此问题,请将name属性添加到submit控件,如下所示:
<input type="submit" name="submit">
3。您正在使用jQuery加载页面本身,即使它包含。。。好。。。它本身它将每隔10000ms用自己的实例递归地填充页面。每一个例子都会这样做。您需要使用表单中的数据查询页面,而不仅仅是加载它。并添加一个条件,以便如果有$\u POST数据,页面不会显示所有HTML。1。
die; //THIS DOESN'T WORK EITHER
isset($_POST['submit'])
die()
2.
die; //THIS DOESN'T WORK EITHER
isset($_POST['submit'])
这不起作用,因为存在名为submit
的变量
要解决此问题,请将name属性添加到submit控件,如下所示:
<input type="submit" name="submit">
3。您正在使用jQuery加载页面本身,即使它包含。。。好。。。它本身它将每隔10000ms用自己的实例递归地填充页面。每一个例子都会这样做。您需要使用表单中的数据查询页面,而不仅仅是加载它。并添加一个条件,以便如果有$\u POST数据,页面不会显示所有HTML。感谢您的回复。因此,我只是将PHP与html/js分离成两个单独的文件,然后使用.get()
而不是.load()
?你说的“这样页面就不会显示所有的HTML”是什么意思?我实际上试图重构你的代码并将其添加到答案中,但中途放弃了。没有什么能起作用的。您需要一个单独的PHP脚本来查询外部JSON并打印当前视图,以及一个JS脚本来定期查询您的PHP脚本并检查自上次检查以来视图的数量是否发生了变化。这样的JS脚本是什么样子的,我如何将其集成到应该包含html表单、tts、,和div
output?谢谢您的回复。因此,我只是将PHP与html/js分离成两个单独的文件,然后使用.get()
而不是.load()
?你说的“这样页面就不会显示所有的HTML”是什么意思?我实际上试图重构你的代码并将其添加到答案中,但中途放弃了。没有什么能起作用的。您需要一个单独的PHP脚本来查询外部JSON并打印当前视图,以及一个JS脚本来定期查询您的PHP脚本并检查自上次检查以来视图的数量是否发生了变化。这样的JS脚本是什么样子的,我如何将其集成到应该包含html表单、tts、,还有div
output?你的视频是私人的。你好,亚伦。我的错误,视频现在可以看了。你的视频是私人的。嗨,亚伦。我的错误,现在可以观看视频了