在html页面中调用PHP

时间:2009-11-25 05:51:54

标签: php html

假设我只能在页面中使用html代码(称之为index.html)。

所以现在,我想用php检查一下(称之为userCheck.php)。

所以我希望html能够与php文件进行通信。

例如,像

当用户访问index.html时,它会检查userCheck.php,因此userCheck说是,然后可以继续查看它,否则它会重定向到userCheck.php。

是否有可能使用javascript或ajax?我是那两个人的新手。

谢谢

6 个答案:

答案 0 :(得分:3)

你可以使用javascript从你的PHP中获取一些数据到你的html中。

使用jQuery的例子(把它放在你的html中):

<script type="text/javascript" charset="utf-8"> <!-- javascript in html -->
    $(document).ready(function(){ // start here, if DOM is loaded

    // request data from php script ...
    // we expect the userCheck.php script to actually 'return' something, 
    // some data ...
    $.get("userCheck.php", function(data){
            alert("Data Loaded: " + data);
    });

    // or with some params to the php
    // e.g. userCheck.php can handle username and favcolor parameters
    $.get("userCheck.php", 
            {"username" : "lazy", "favcolor" : "FFFFFF" },          
            function(data){ alert("Data Loaded: " + data);
    });



});
</script>

如果这对您来说都是全新的,请帮自己一个忙,阅读一些介绍性的书籍,这些书籍将为您提供有价值的见解 - some random book tips from O'ReillyGoogle Tech Talk on jQuery

答案 1 :(得分:2)

您希望设置Apache Handler,以便使用php解析扩展名为.html的文件。通过位于您的Web根目录中的简单.htaccess文件执行此操作:

AddHandler application/x-httpd-php .html

您现在可以在.html页面中使用PHP。不需要额外的AJAX hackery,也不需要处理NoScript用户或JS微弱的浏览器。

答案 2 :(得分:1)

如果您的服务器不允许php文件,那么您无法直接执行此操作。您可能希望将您的php文件放在另一台支持php的服务器上,然后使用ajax调用它。但是你必须确保你的php服务器提供商允许这样做。

答案 3 :(得分:0)

不确定您究竟是在追求什么,但是您可以将页面命名为index.php,将所有html写入其中,并在需要时将PHP代码插入<?php ...code... ?>? PHP运行在服务器端,可以有条件地呈现不同的HTML,具体取决于您的因素。

答案 4 :(得分:0)

JavaScript可用于通过JSON调用HTML页面并与之通信。

这是一个使用JQuery和选择链插件根据前一个下拉列表的选择填充下拉框的示例。

HTML页面:

$('#selectbox1').selectChain({
        target: $('#selectbox2'),
        url: 'selectlist.php', 
        data: { ajax: true }
    }).trigger('change');

selectlist.php

if (@$_REQUEST['ajax']) {
$json = array();
    if ((isset($_REQUEST['selectbox1'])) && ($_REQUEST['selectbox1'] != '')){   
        $results = mysql_query('SELECT * FROM table WHERE id="'.$_REQUEST['selectbox1'].'"') or die ("Error: ".mysql_error());
        while($row = mysql_fetch_array($results)) {
            $json[] = '{"id" : "' . $row['id'] . '", "label" : "' . $row['name'] . '"}';
        }
    }
    echo '[' . implode(',', $json) . ']';
}

答案 5 :(得分:0)

UFOman说“服务器允许php,但因为我使用的程序只能输出html页面” 听起来像你真正需要的是了解如何将html页面与php代码结合起来。做你想做的最简单(但也很合适)的方法是这样的:

1)使用Notepad或TextEdit打开程序输出的HTML文件
2)选择全部并复制内容
3)创建一个名为yourPageNameTemplate.php的文件并粘贴到其中。假装看起来像这样:

<html> 
<body>
   <form method="post">
      <input type="text" name="user_name" value="" />
      <input type="submit" name="submit" value="submit" />
   </form>
</body>
</html>

4)创建一个名为yourPageName.php的文件,并在其中添加如下内容:

<?php 

if(isset($_POST['submit']) && isset($_POST['user_name']))
{
   echo 'Thanks for submitting the form!';
}
else
{
   include 'yourPageNameTemplate.php';
}

?>

这应该工作得很好。 现在,如果您想添加一些错误检查,向您的模板发送一条错误消息,我们可以非常简单地完成。

5)像这样编辑yourPageNameTemplate.php:

<html> 
<body>
   <?=$form_error_message?>
   <form method="post">
      <input type="text" name="user_name" value="<?=$form_user_name?>" />
      <input type="submit" name="submit" value="submit" />
   </form>
</body>
</html>

6)像这样编辑yourPageName.php:

<?php 

$form_error_message = '';
$form_user_name = '';
if(isset($_POST['user_name']) && strlen($_POST['user_name']) < 5)
{
   $form_error_message = 'User Name must be at least 5 characters long';
   $form_user_name = $_POST['user_name'];
}

if(isset($_POST['submit']) && empty($form_error_message))
{
   echo 'Thanks for submitting the form!';
   //it would be better to include a full 'thank you' template here, instead of echoing.
}
else
{
   include 'yourPageNameTemplate.php';
}

?>