【问题标题】:Post text input before submit action working inconsistently在提交操作之前发布文本输入工作不一致
【发布时间】:2010-11-13 16:40:51
【问题描述】:

我正在尝试创建一份同意书,并让用户输入他们的姓名。当提交按钮被按下时,我将他们的文本输入发布到一个 PHP 文件,该文件将他们的名字邮寄给我(我知道有更简单的方法可以做到这一点)。然而,这种形式的工作不一致;有时它会记录用户的姓名,有时它不会。在我的计算机上,它通常总是可以工作,所以我无法解决问题。

代码如下:

//submitlink is a dummy link
$("#submitlink").click(function(event){
    event.preventDefault();
    var name1val = $("#name1").val();
    if (!(name1val == '')){
        $.post("mail.php",
               { name : name1val, time : curr_time} 
        );
        //agree is a <form id="agree" action="nextpage.php">
        $("#agree").submit();
    else{
       //display error message
    }
 }

mail.php 是:

<?php

$name = $_POST['name'];
$text = $name . " has begun the survey at " . date("F j, Y, g:i a");
$result = mail('myemail', 'User has begun survey', $text);
?>

您能想出这段代码无法运行的原因吗?在用户单击提交按钮后,如何确保可靠地发布数据?

【问题讨论】:

  • 您缺少一个右括号和括号。 if (name1val !== '') 右括号在哪里? .click(function() {...}) 呢?
  • 抱歉 - 右括号在正确的代码中。我复制并粘贴了相关部分

标签: php jquery forms submit


【解决方案1】:

在确认 AJAX 调用成功之前,您要提交第二个表单 $("#agree").submit();。有时这会起作用;通常不会。将 submit 调用放入成功处理程序中:

$.post("mail.php",
    { name : name1val, time : curr_time},
    function(){
        $("#agree").submit();
    }
);

这将在 AJAX 请求完成后调用代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多