我正在尝试使用来自表单输入的值来更新某些占位符文本(而不是占位符属性),这些值都在同一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>(%)</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>
但是没有用。
我该怎么办?
答案 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。