如何从我的HTML表单调用PHP函数?

时间:2012-04-30 19:22:21

标签: php html ajax

我有一个网站模板,我想在那里自定义邮件发件人。我看到this form帮助实现它。

php文件如下所示:

<?php
echo 'testing php'; 
$name = $_POST['name']; // contain name of person
$email = $_POST['email']; // Email address of sender 
$web = $_POST['web']; // Your website URL
$body = $_POST['text']; // Your message 
$receiver = "myEmail@hotmail.com" ; // hardcorde your email address here - This is the email address that all your feedbacks will be sent to 

$body = "Name:{$name}\n\nWebsite :{$web}\n\nComments:{$body}";
$send = mail($receiver, 'Contact Form Submission', $body, $email);
if ($send) {
    echo 'true'; //if everything is ok,always return true , else ajax submission won't work
}
?>

更新

我设法像这样调用php文件:

<form id="form" method="post" action="ajaxSubmit.php" > 
                <fieldset> 
                <label><input type="text" id="name" name="name" value="Name" onBlur="if(this.value=='') this.value='Name'" onFocus="if(this.value =='Name' ) this.value=''"></label>
                  <label><input type="text" id="email" name="email" value="Email" onBlur="if(this.value=='') this.value='Email'" onFocus="if(this.value =='Email' ) this.value=''"></label> 
                <label><input type="text" id="web" name="web" value="Phone" onBlur="if(this.value=='') this.value='Phone'" onFocus="if(this.value =='Phone' ) this.value=''"></label>
                  <label><textarea id="text" name="text" onBlur="if(this.value==''){this.value='Message'}" onFocus="if(this.value=='Message'){this.value=''}">Message</textarea></label> 
                <input type="reset" /> 
                <input type="submit" /> 
                </fieldset> 
                </form>

但是当我跑步时,我会跟随错误

Warning: mail() [function.mail]: SMTP server response: 550 The address is not valid. in C:\wamp\www\forSale\dataTable\ajaxSubmit.php on line 17

然后我检查变量的值,它们是正确的。这是什么意思?

3 个答案:

答案 0 :(得分:1)

除非我缺少咖啡在我的眼睛上玩耍,否则你没有在这些输入上指定名称属性。 $ _POST不包含元素的ID,而是包含'name'和'value'属性。

e.g:

<input type="text" id="name" value="Name" name="name" ...

编辑:调试这个理论,尝试在PHP文件中输出$ _POST变量的值

答案 1 :(得分:1)

将属性name="field_name"添加到输入字段。这可能会解决问题。

答案 2 :(得分:1)

正如我在聊天中所说的那样,您应该首先尝试通过首先正常提交表单,然后通过使用javascript验证来改进它,之后尝试使用ajax提交表单。

如果您将表单修改为基础知识,则会获得:

<form id="form" method="post" action="ajaxSubmit.php" >
    <fieldset>
        <input type="text" id="name" name="name" value="Name" 
                    onBlur="if(this.value=='') this.value='Name'" 
                    onFocus="if(this.value =='Name' ) this.value=''" />
        <input type="text" id="email" name="email"  value="Email" 
                    onBlur="if(this.value=='') this.value='Email'"
                    onFocus="if(this.value =='Email' ) this.value=''" />
        <input type="text" id="web" name="web"  value="Phone" 
                    onBlur="if(this.value=='') this.value='Phone'" 
                    onFocus="if(this.value =='Phone' ) this.value=''" />
        <textarea id="text" name="text" value="Message"
                    onBlur="if(this.value==''){this.value='Message'}" 
                    onFocus="if(this.value=='Message') this.value=''}" />  
        <input type="reset" />
        <input type="submit" />
    </fieldset>  
</form>