我不理解PHP处理的东西

时间:2015-04-27 18:24:21

标签: php html event-handling

我是编程的新手,很抱歉,如果这个问题没有多大意义。我学会了PHP处理,并且我成功了。但我无法做点什么。 首先来看看代码......

<html>
<body>

Connected to: <?php echo $_GET["name"];?><br>


</body>
</html> 

get.php文件:

if (xmlHttp.readyState > 0 && xmlHttp.readyState < 4) {
    document.getElementById("tftopic").innerHTML = loadingmessage;
} else if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
    document.getElementById("showtopic").innerHTML = xmlHttp.responseText;
    document.getElementById("issolved").innerHTML = issolve;
} else {
    // do your error handling here
}

输出(连接到$ name)将在空白页面上,没有其他html和css元素。有没有办法在连接按钮下面打印输出?

2 个答案:

答案 0 :(得分:0)

它不是现代网络编程的最佳方法,但由于您是初学者:您可以将PHP连接逻辑与HTML结合到同一个文件中。

<!DOCTYPE html>
<html>
<body>
<form method="get">
     Username: <input type="text" name="name" />
     <input type="submit" value="Connect" class="btn" />
</form>
<?php
     if (isset($_GET["name"])) {
          echo "Connected to: " . $_GET["name"];
     }
?>
</body>
</html>

请注意,我省略了action="...",以便定位到当前页面。

顺便说一句,一个好的方法是将业务逻辑与可视化组件分开(我建议你阅读有关MVC设计模式的内容)。

此外,如果你想避免刷新整个页面,你可以使用JavaScript和AJAX(我建议你阅读jQuery),但它更高级。

答案 1 :(得分:0)

网络是“无状态的”,您想要做的就是提交表单而不刷新页面。这可以在JavaScript中的客户端完成。以下例如使用jQuery来使JS必须编写更小的内容,但可以(可以说应该)直接用JS完成。

<html>
  <body>
    <form action="get.php" method="get" id="the-form">
      <label for="name">Username: <input type="text" id="name" name="name">
      <br>
      <input type="submit"value="Connect" class="btn">
    </form>
    <div id="response">
      <?php
        if(isset($_GET['name']))
        {
          include('get.php');
        }
      ?>
    </div>
  </body>
</html>
<script src="path/to/jquery.min.js"></script>
<script>
  $(#the-form).submit(function(event) 
  {
    event.preventDefault();
    $.ajax({
      url: 'get.php',
      type: 'get',
      data: $("#the-form").serialize(),
      success: function(data)
      {
        $('#response').append(data);                
      }
    });
  });      
</script>

如果您不担心页面刷新,那么Reflection的答案正是您所寻找的。也就是说,你可以使用JS / ajax免费版本作为后退,将AJAX版本作为渐进增强版本。