首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ajax在提交表单时找不到php文件?

为什么ajax在提交表单时找不到php文件?
EN

Stack Overflow用户
提问于 2017-10-29 22:15:20
回答 3查看 395关注 0票数 0

我有一个表单,发出一个ajax请求,但是它找不到php file.Ive尝试过什么,在这里阅读了这么多帖子,尝试了所有建议,但是没有任何帮助。

  1. 我试着用一条绝对路径,就像在某个地方建议的那样。不管用。
  2. 相对路径也不能工作
  3. 我试图将提交按钮放在我的html文件中(在另一篇文章中建议)--也不起作用。有人知道为什么吗?编辑:我得到404

档案结构:

代码语言:javascript
复制
myApp/app/js/contact.js
myApp/app/mail/contact.php
myApp/app/index.html

html:

代码语言:javascript
复制
    <section id="contact">
        <form>
            name:
            <input id="name" type="text" name="name"> email:
            <input id="email" type="text" name="email"> message:
            <input id="message" type="text" name="message">
            <button id="submit">send</button>
        </form>
    </section> 

app/js/contact.js:

代码语言:javascript
复制
  $('#submit').click(function (event) {
        event.preventDefault() ;
        var name = $("#name").val();
        var email = $("input#email").val();
        var message = $("textarea#message").val();

        console.log("name", name, email);
        $.ajax({
            url: "/app/mail/contact.php",
            type: "POST",
            data: {
                name: name,
                email: email,
                message: message
            }
        })
    });

mail/contact.php:

代码语言:javascript
复制
<?php
 if (isset($_POST["submit"])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'Contact Form';
    $to = 'myemail@yahoo.com';
    $subject = 'Message from my page ';
    if (mail ($to, $subject, $body, $from)) {
    $result='<div class="alert alert-success">Thank You! I will be in touch</div>';
    }
}

?>

EN

回答 3

Stack Overflow用户

发布于 2017-10-29 23:09:07

在html文件中,将脚本放在</body>标记之前。

代码语言:javascript
复制
<section id="contact">
    <form>
        name:
        <input id="name" type="text" name="name"> email:
        <input id="email" type="text" name="email"> message:
        <input id="message" type="text" name="message">
        <button id="submit">send</button>
    </form>
</section>
<script type="text/javascript" src="//code.jquery.com/jquery-3.2.1.min.js"></script>
<script type="text/javascript" src="/app/js/contact.js"></script>
</body>
票数 0
EN

Stack Overflow用户

发布于 2017-10-29 23:18:18

这不能解决你的问题,但这是一个更好的ux

<form>一个类或ID,并在表单提交时执行表单提交

所以这会是

代码语言:javascript
复制
$('.formClassName').submit(function(event){

});

这将允许表单提交在submit按钮单击以及用户单击enter按钮时触发AJAX事件。

票数 0
EN

Stack Overflow用户

发布于 2017-10-30 01:46:53

而不是使用

url: "/app/mail/contact.php",

用途:

url: "mail/contact.php",

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47005812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档