如何使用表单,输入和ph​​p更新一些占位符文本?

时间:2019-05-24 14:24:22

标签: php html

我正在尝试使用来自表单输入的值来更新某些占位符文本(而不是占位符属性),这些值都在同一HTML页面上。 因此,我有一个index.html文件和一个test.php文件。

我对PHP非常陌生。我几乎不了解它是什么以及它如何工作。 在网上找不到与我的问题有关的任何内容。

我正在使用安装在Linux Mint 19.1上的Apache2服务器和PHP 7.2。

<!DOCTYPE html>

<html>    
<head>
    <meta charset = "utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">    
    <link rel = "stylesheet" type = "text/css" href = "master.css">   
    <title>Home Page</title>
</head>
<body>
            <div id = "center_text_box">
                <p>URL:</p> <p><span>%PLACEHOLDER_URL%</span></p>
                <p>URL Refresh Rate:</p><p><span>%PLACEHOLDER_URR%</span>(s)</p>
                <p>Brightness:</p> <p><span><?php echo 'Brightness: '.$Brightness;?></span>(&#37;)</p>
            </div>
<form method="post" action="">
                        <input id="text-input" type="url" inputmode="url" placeholder="Enter URL" name="getURL" value="" title = "URL">
                        <input  class="URR" id="text-input" inputmode="numeric" 
                                title="Enter a Refresh Time(s) between 1 and 10"
                                type="text"
                                pattern="([0-9]{1,2})"
                                oninvalid="this.setCustomValidity('Please enter a number between 1 and 10')"
                                onchange="try{setCustomValidity('')}catch(e){}"
                                oninput="setCustomValidity(' ')"
                                maxlength="2"
                                placeholder="*Enter URL Refresh Time (s)" name="getRefreshRate" value="">
                        <input  class="Brightness" id="text-input" inputmode="numeric" type="text" maxlength="2" pattern="([0-9]{1,2})"
                                oninvalid="this.setCustomValidity('Please enter a number between 2 and 99')"
                                onchange="try{setCustomValidity('')}catch(e){}"
                                oninput="setCustomValidity(' ')"
                                placeholder="*Enter Brightness (2-99)" name="getBrightness" value="" title="Enter a Brightness value between 2 and 99">
                        <input id="button" type="submit" name="save_values" value="Save Values">
                    </form>
</body>
</html>
<?php
// Check if the form is submitted 
if ( isset( $_POST['save_values'] ) ) { // retrieve the form data by using the element's name attributes value as key 
    $Brightness = $_POST['getBrightness'];
    $RefreshRate = $_POST['getRefreshRate'];
    $message = "Success ! You have entered Brightness: ".$Brightness." and RefreshRate: ".$RefreshRate;
    exit;
} 
?>

每当我使用%PLACEHOLDER_URR%输入值时,我都希望<input class="URR" name="getRefreshRate" value="">进行更新。

如您所见,Brightness我已经尝试替换

<span>%PLACEHOLDER_Brightness%</span>

使用

<span><?php echo 'Brightness: '.$Brightness;?></span>

但是没有用。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

这里有很多要讲的内容...

您说您的html和php文件是分开的,但是您没有说它们的名字。因此,我将它们称为index.html和index.php。您将必须用您使用的任何文件名替换“索引”的每个实例。

在index.html文件中,您将提交到index.html,因为表单的操作未设置为任何操作。如果您未设置,它将提交给自己。因此,它将永远不会访问index.php文件。如果希望它访问index.php文件,则必须将表单的操作设置为index.php。

因为您的index.html文件提交给自己,所以忽略index.php文件。它不会以任何方式被触摸。他们是否坐在同一台服务器上并不重要。没有魔术发生。文件不会神秘地混合在一起。因此,在index.html文件中,您尝试打印$ Brightness,但是在该文件的任何地方都没有为$ Brightness设置值。

可以在index.html文件中包含index.php。在index.html文件的顶部,添加:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubernetes.io/config.hash: c3eef2d48a776483adc00311df8cb940
    kubernetes.io/config.mirror: c3eef2d48a776483adc00311df8cb940
    kubernetes.io/config.seen: 2019-05-24T13:50:06.335448715Z
    kubernetes.io/config.source: file
    scheduler.alpha.kubernetes.io/critical-pod: ""
  creationTimestamp: 2019-05-24T14:08:14Z
  labels:
    component: etcd
    tier: control-plane
  name: etcd-test-master-01
  namespace: kube-system
  resourceVersion: "6288"
  selfLink: /api/v1/namespaces/kube-system/pods/etcd-test-master-01
  uid: 5efadb1c-7e2d-11e9-adb7-fa163e267af4
spec:
  containers:
  - command:
    - etcd
    - --advertise-client-urls=https://127.0.0.1:2379
    - --cert-file=/etc/kubernetes/pki/etcd/server.crt
    - --client-cert-auth=true
    - --data-dir=/var/lib/etcd
    - --initial-advertise-peer-urls=https://127.0.0.1:2380
    - --initial-cluster=test-master-01=https://127.0.0.1:2380
    - --key-file=/etc/kubernetes/pki/etcd/server.key
    - --listen-client-urls=https://127.0.0.1:2379
    - --listen-peer-urls=https://127.0.0.1:2380
    - --name=test-master-01
    - --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt
    - --peer-client-cert-auth=true
    - --peer-key-file=/etc/kubernetes/pki/etcd/peer.key
    - --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
    - --snapshot-count=10000
    - --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
    image: k8s.gcr.io/etcd-amd64:3.2.18
    imagePullPolicy: IfNotPresent
    livenessProbe:
      exec:
        command:
        - /bin/sh
        - -ec
        - ETCDCTL_API=3 etcdctl --endpoints=https://[127.0.0.1]:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt
          --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key=/etc/kubernetes/pki/etcd/healthcheck-client.key
          get foo

这将加载index.php文件并进行处理,然后再继续执行index.html文件。因此,如果您收到提交,它将设置$ Brightness。如果您未提交,则不会设置$ Brightness。这是由您的if语句引起的。您声明,仅当在Post中设置了save_values时,才想设置$ Brightness。

警告:加载index.html页面时,请查看源代码。如果您看到<?php include('index.php'); ?>在您的Web浏览器中,您的服务器未解析PHP的html文件。您必须将index.html文件重命名为index.php-这可能与现有的.php文件冲突。这是服务器设置。我将个人服务器设置为处理HTML文件中的PHP。有些人不这样做。

警告:您的index.php中有“退出”字样。删除它。它会杀死你的全部。您希望它做一些工作然后继续工作。

现在,在index.html文件中,您不能仅打印$ Brightness。它可能没有价值。您可以像在index.php文件中一样使用if语句:

<?php include('index.php'); ?>

现在,您可以按照流程进行操作。您是第一次加载页面。什么都没有发布,所以当您包含index.php时,它什么都没有设置。 index.html文件处理。 $亮度未设置,因此不打印。您在表单中输入内容并提交。页面再次加载。这次,index.php设置了$ Brightness,而index.html打印了$ Brightness。