2014-02-19 37 views
-3

我是PHP新手,试图获得简单的表单并能够通过电子邮件发送给管理员。我之前已经获得了PHP表单,但由于某种原因,我在这方面遇到了很多困难。基本上,当我打我的提交按钮,我得到这个垃圾: enter image description here。我正在使用WAMP服务器来完成这个任务,不确定iit是否与错误有关,但我不相信它。PHP注意:未定义索引,表单无法正常工作

这是我的主索引页上的脚本,刚刚闭幕的HTML

function validate(){ 
     var name=document.getElementById('employee'); 
     var name=document.getElementById('start-date'); 
     var name=document.getElementById('end-date'); 
     var name=document.getElementById('location'); 
     var name=document.getElementById('company'); 
     var name=document.getElementById('perdiem'); 
     var name=document.getElementById('flight'); 
     var name=document.getElementById('hotel'); 
     var name=document.getElementById('rental'); 
     var name=document.getElementById('depart'); 
     var name=document.getElementById('city-venue'); 
     var name=document.getElementById('submit'); 

     if(employee.value == ''){ 
      alert('Please enter employee name'); 
      return false; 
      } 
     if(start-date.value == ''){ 
      alert('Please enter start date'); 
      return false; 
      } 
     if(end-date.value == ''){ 
      alert('Please enter end date'); 
      return false; 
      } 
     if(location.value == ''){ 
      alert('Please enter location'); 
      return false; 
      } 
     if(company.value == ''){ 
      alert('Please enter employee company'); 
      return false; 
      } 
     if(perdiem.value == ''){ 
      alert('Please enter perdiem value'); 
      return false; 
      } 
     if(depart.value == ''){ 
      alert('Please enter departure details'); 
      return false; 
      } 
     if(city-venue.value == ''){ 
      alert('Please enter City-Venue'); 
      return false; 
      } 
     } 

这里是形式之前:

<div id="form"> 
<form method="get" name="contactform" action="handler.php" onSubmit="return validate()"> 
<h1>Employee to Request</h1> 

<select id="employee"> 
<option value="emp1">sample1</option> 
<option value="emp2">sample2</option> 

</select><br> 

<h1>Start Date:</h1> <input type="date" name="start-date"><br> 
<h1>End Date:</h1> <input type="date" name="end-date"><br> 
<h1>Location</h1> 
<select id="location"> 
    <option value="chicago">Chicago</option> 
    <option value="florida">Florida</option> 
    <option value="las-vegas">Las Vegas</option> 
    <option value="new-england">New England</option> 
    <option value="new-orleans">New Orleans</option> 
    <option value="new-york">New York</option> 
    <option value="northern-california">Northern California</option> 
    <option value="seattle">Seattle</option> 
    <option value="southern-california">Southern California</option> 
    <option value="washington-dc">Washington DC/Baltimore</option> 
</select> 
<h1>Company Name</h1> 
<select id="company"> 
    <option value="cmp1">cmp1</option> 
    <option value="cmp2">cmp2</option> 
    <option value="cmp3">cmp3</option> 
</select> 
<h1>Perdiem</h1> 
<select id="perdiem"> 
    <option value="35">$35</option> 
    <option value="45">$45</option> 
    <option value="50">$50</option> 
</select> 
<h1>Hotel</h1> 
<select id="hotel"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 
<h1>Flight</h1> 
<select id="flight"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 
<h1>Rental Car</h1> 
<select id="rental"> 
    <option value="yes">Yes</option> 
    <option value="no">No</option> 
</select> 

<h1>Departing</h1> 
<input type="text" name="depart" onClick="this.value='';" onFocus="this.select()" onBlur="this.value=!this.value?'Name: ':this.value;" value="Departing: " placeholder="Depart"><br> 
<h1>City/Venue</h1> 
<select id="city-venue"> 
    <option value="city1">Las Vegas/Venue1</option> 
    <option value="city2">Orlando/Venue2</option> 
    <option value="city3">sample</option> 
    <option value="city4">sample2</option> 
    <option value="city5">sample3</option> 
</select> 
<br> 

<h1>Other Information:</h1> 
<textarea class="message" placeholder="Other Information:"type="text" name="message" onClick="this.value='';" onFocus="this.select()" onBlur="this.value=!this.value?'Message: ':this.value;" value="Message: "></textarea><br> 
<input type="submit" value="Submit" id="submit"> 
</form> 
</div> <!--close form--> 

,这里是handler.php文件

<?php 
$employee = $_GET['employee']; 
$employee = $_GET['start-date']; 
$employee = $_GET['end-date']; 
$employee = $_GET['location']; 
$employee = $_GET['company']; 
$employee = $_GET['perdiem']; 
$employee = $_GET['flight']; 
$employee = $_GET['hotel']; 
$employee = $_GET['rental']; 
$employee = $_GET['depart']; 
$employee = $_GET['city-venue']; 

echo "Welcome".$employee; 
echo "</br>" 
?> 

在此先感谢,我真的很感激它

+0

可能的重复[参考 - 这个错误在PHP中意味着什么?](http://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php) – deceze

+1

没有你的'form'字段有'name'属性。 'id'与'name'不一样 – 2014-02-19 19:02:56

回答

2

发生这种情况,因为PHP读取输入的名称值,而不是输入ID,所以指数不definied,我会在你的输入添加名称,例如

<select id="employee"> 

将是

<select id="employee" name="employee"> 

你必须添加这一切您输入字段

0

使用isset()函数功能

试试这个

if(isset($_GET['employee'])) 
    { 
    $employee = $_GET['employee']; 
    } 

和是把name属性在所有输入

+0

这样可以解决这个错误,但是它不会帮助所有输入值 – Fabio

+0

是的你是对的。但我认为这是这个问题的最佳答案。它容易理解 –

+0

你根本没有任何东西,这怎么可能是最好的答案?有人需要阅读一些指南http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question – Fabio

0

这有什么好做的PHP错误,但JavaScript是充满问题

复制粘贴错误

var name=document.getElementById('employee'); 
    var name=document.getElementById('start-date'); 
    var name=document.getElementById('end-date'); 
    var name=document.getElementById('location'); 
    var name=document.getElementById('company'); 
    var name=document.getElementById('perdiem'); 
    var name=document.getElementById('flight'); 
    var name=document.getElementById('hotel'); 
    var name=document.getElementById('rental'); 
    var name=document.getElementById('depart'); 
    var name=document.getElementById('city-venue'); 
    var name=document.getElementById('submit'); 

无效的变量名称

city-venue.value 

那说得采取可变city和减去venue.value

现在PHP错误 - 表格问题

您还没有提交名称/值对的serber。你的表单的问题是元素只有ID和没有名字。所有的表单元素都需要名称。这是提交给服务器的内容。