Javascript HTML表单文本到语音表示文件名和PHP,双重表单

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

我正在制作一个网页,它接受HTML表单输入,使用PHP在循环中进行处理,然后使用jQuery在
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?你的视频是私人的。你好,亚伦。我的错误,视频现在可以看了。你的视频是私人的。嗨,亚伦。我的错误,现在可以观看视频了