0

我很难让我的表格正常工作。

任何人都可以看看这个并告诉我为什么当我在现场环境中尝试它时没有任何反应?我设法让表单在表单标签中使用“action”提交,同时完全放弃了 javascript,PHP 返回错误和成功取决于我是否填写了所有字段并成功接收了电子邮件。

但是我想使用 javascript 方法,以便我可以防止页面重新加载并使用警报消息,因为此表单将在打包的移动应用程序中使用。

任何帮助深表感谢。

    <form  method="post" name="form1" id="form1">
      <label for="textfield">Text Field:</label>
      <input name="FirstName" type="text" id="FirstName">
      <label for="textfield2">Text Field:</label>
      <input name="LastName" type="text"  id="LastName">
      <label for="textfield3">Text Field:</label>
      <input name="Email" t ype="text"id="Email">
      <label for="textfield4">Text Field:</label>
      <input name="MessageText" type="text"  id="MessageText">

    <input type="button" onclick="submit()" value="submit contact"/>
   </form>

    <script>
    $(document).ready(function(){
      event.preventDefault();
      $("form").submit(function(){
        $.post('http://************/requestform.php', {



        FirstName: $('#FirstName_input').val(),
        LastName: $('#LastName_input').val(),
        Email: $('#Email_input').val(),
        MessageText: $('#MessageText_input').val()



        }, function (html) {

            var response=html;


             if (response=="success") {
               alert("Message sent!"); 
            } else {


               alert("Sorry please fill all fields!"); 
            return false;
        }
       });

      });
    });

和 PHP 部分

    <?php


     $FirstName=$_POST["FirstName"];
     $LastName=$_POST["LastName"];
     $Email=$_POST["Email"];
     $MessageText=$_POST["MessageText"];
     $Headers = "From:" . $Email;


     if(
     $FirstName=="" ||
     $LastName=="" ||
     $Email=="" ||
     $MessageText==""
     ) {
         echo "Error";
     } else {
         mail("*******@gmail.com","mobile app message",$MessageText, $Headers);
         echo "success";
     }
 ?>
4

2 回答 2

2

不要$_GET用于访问变量。

使用$_POST.

所以改变:

$FirstName=$_GET["FirstName"];
$LastName=$_GET["LastName"];
$Email=$_GET["Email"];

到:

$FirstName=$_POST["FirstName"];
$LastName=$_POST["LastName"];
$Email=$_POST["Email"];

更新:

改变:

    FirstName: $('#FirstName_input').val(),
    LastName: $('#LastName_input').val(),
    Email: $('#Email_input').val(),
    MessageText: $('#MessageText_input').val()

到:

    FirstName: $('#FirstName').val(),
    LastName: $('#LastName').val(),
    Email: $('#Email').val(),
    MessageText: $('#MessageText').val()

为什么要添加_input到输入ID?

更新 2

编辑 HTML:

<input type="button" onclick="submit()" value="submit contact"/>

<input type="button" onclick="sendForm()" value="submit contact"/>

Javascript:

function sendForm() {
    $.post('http://************/requestform.php', {

    FirstName: $('#FirstName').val(),
    LastName: $('#LastName').val(),
    Email: $('#Email').val(),
    MessageText: $('#MessageText').val()

    }, function (html) {
         var response=html;

         if (response=="success") {
           alert("Message sent!"); 
         } else {
           alert("Sorry please fill all fields!");
         }
   });

}

请参阅更改
$("form").submit(function(){
$("form1").submit(function(){
,因为表单 id 是#form1.

于 2013-09-12T10:11:37.917 回答
0

当用户单击按钮时,您必须进行 ajax 调用。为此,请为您的按钮分配一个点击处理程序。

试试这个:

<form  method="post" name="form1" id="form1">
    <label for="textfield">Text Field:</label>
    <input name="FirstName" type="text" id="FirstName">
    <label for="textfield2">Text Field:</label>
    <input name="LastName" type="text"  id="LastName">
    <label for="textfield3">Text Field:</label>
    <input name="Email" type="text"id="Email">
    <label for="textfield4">Text Field:</label>
    <input name="MessageText" type="text"  id="MessageText">

    <input type="button" id="submitContactBtn" value="submit contact"/>
</form>

<script type="text/javascript">

    $(document).ready(function(){

        // we will perform an AJAX call when user clicks the button
        $('#submitContactBtn').click(function(){

            $.post('http://************/requestform.php', {

            FirstName: $('#FirstName').val(),
            LastName: $('#LastName').val(),
            Email: $('#Email').val(),
            MessageText: $('#MessageText').val()        

            }, function(response){

                var result = responce.replace(/\s/g, ''); // clear all whitespaces, just in case

                if( result == 'success' ){
                    alert("Message sent!"); 
                } else {
                    alert("Sorry please fill all fields!"); 
                }

            });     

        });

    });

</script>

请注意,我已将 id 添加到您的按钮:

<input type="button" id="submitContactBtn" value="submit contact"/>
于 2013-09-12T10:57:11.040 回答