从html页面调用外部php脚本

时间:2015-05-07 00:39:06

标签: javascript php jquery html apache2

这是我的第一篇文章,所以如果这是在错误的区域或者格式不正确,我道歉!

我对网络开发非常陌生,无法找到我要找的东西,所以我想我会问这里。我的愿望是在我的Raspberry Pi上创建一个包含HTML网页的Web服务器。在HTML页面中单击按钮时,将调用HTML页面底部的Javascript脚本以从文本框中获取文本并对其进行验证。然后我想将这些数据发送到PHP脚本(位于与index.html文件相同的目录中),该脚本仅执行另一个python脚本,其中的数据位于我的Pi上。当我从终端运行我的PHP脚本时:

sudo php setalarm.php "10 20 1,2,3"

它按预期运行,但点击HTML页面上的按钮后,没有任何反应。我已经验证了"包"变量包含正确的数据,但我无法看到JQuery的结果。

我有以下问题:

  1. 如果我唯一的愿望是发送"包" (请参阅HTML文件片段 - 消息Javascript,下面的第2行或上面命令中的第二个参数)作为从我的HTML页面执行python脚本的命令行参数,这是正确的方法吗?如果没有,我该如何执行这样的任务呢?
  2. 有没有办法从HTML页面调试和查看我的外部PHP文件?我正在使用IE的调试工具,如果我在jQuery之前设置断点并进入下一行,我将无法查看PHP脚本,只返回空白结果。
  3. 如果我正在尝试的方法是一个很好的方法,那么您在代码中看到的是否有明显的错误或问题?
  4. 编辑 - 新的PHP脚本

    <?php
    echo "Package is: " . $_GET['package'];
    system("sudo python /home/pi/Alarm/change_alarm.py {$_GET['package']}", $ret_val);
    ?>
    

    HTML文件代码段 - 按钮

    <div class="grid8 a-right">
        <form method="post"> </form>
        <button id="submitButton" type="submit" onclick="message()"> SET</button>
    </div>
    

    HTML文件片段 - 消息Javascript

    alert("Alarm set for " + hour + ":" + minute + " on " + message);
    package = hour + " " + minute + " " + list;
    
    $.ajax({
      method: "GET",
      url: "setalarm.php",
      data: { package: package }
    })
    .done(function( msg ) {
      alert(msg);
    });
    

    非常感谢你的帮助!如果我在这篇文章中犯了任何错误,我再次道歉。另外,如前所述,我对Web开发很新,所以这可能是一个非常愚蠢的错误。如果确实如此,我很抱歉!

1 个答案:

答案 0 :(得分:0)

为了解决问题,我不得不对我的网络服务器进行一些更改。首先,我在/var/log/apache2/error.log找到的错误日志中注意到它缺少一个favicon,因此我使用PhotoShop创建了一个简单的日志。其次,我将我的apache2用户帐户www-data添加到sudo并授予其所有权限。第三,我将我的python脚本移动到我的网络服务器所在的/var/www/文件夹,并相应地更新了php脚本。以上三个结合起来解决了我的问题。