我还在学习php和java脚本。 我正在创建一个简单的联系表单,并使用$ _Server [php_self]
将表单操作设置为同一页面我想要做的是当有人提交到我的表单时,它会显示一条消息,其中包含在同一页面上提交的名称。用信息替换联系表格。
我也尝试将动作指向不同的php页面。它仍然无法正常工作。 Javascript是这样的吗?或者我必须使用不同的代码或语言来做到这一点。
这是我的代码
<!DOCTYPE html>
<html>
<head>
<?php
include 'action.php';
?>
<title> My profle</title>
<meta name="robots" content="noindex">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="contact">
<form class="form" class="contact" id="contact-form" action="action.php" method="POST">
Name: <br>
<input type="text" class="field" name="name"><br>
Number:<br>
<input type="text" class="field" name="number"><br>
Email:<br>
<input type="email" class="field" name="email:>"<br>
<br>
<input type="submit" class="submit" name="submit" value="submit"
onclick ="document.getElementById('contact-form').innerHTML='<?php thankyou();?>'">
</form>
</div>
</body>
</html>
&#13;
然后是action.php
<?php
function thankyou(){
$name = $_POST['name'];
echo "Thank you"." $name ! Your message has been submitted.";
}
?>
&#13;
答案 0 :(得分:3)
这里有几个不同的问题。
首先是缺乏对PHP和JS运行时间的理解。
第二个是加载新页面时DOM更改会丢失。
这就是发生的事情:
$_POST
没有name
密钥)innerHTML
(请记住PHP在第2步回溯)进一步阅读:What is the difference between client-side and server-side programming?。
答案 1 :(得分:0)
我愿意在评论中听到更好的方法来做到这一点,因为这不是我的头脑,而且我知道有更好的解决方案......但是这里我会做什么你的情况:
<!DOCTYPE html>
<html>
<head>
<title> My profle</title>
<meta name="robots" content="noindex">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="contact">
<form class="form" class="contact" id="contact-form" action="" method="POST">
<?php
if(isset($_POST)){
//process data however (I'm assuming) you need to - even if just posting to another script at this point...
echo 'Thank you '.$_POST['name'].' ! Your message has been submitted';
}
else{
echo 'Name: <br>
<input type="text" class="field" name="name"><br>
Number:<br>
<input type="text" class="field" name="number"><br>
Email:<br>
<input type="email" class="field" name="email"><br>
<br>
<input type="submit" class="submit" name="submit" value="submit">';
}
?>
</form>
</div>
</body>
</html>