使用表单上的两个按钮将按钮值传递给AJAX/PHP脚本


Using two buttons on a form to pass button value to AJAX/PHP scripts

我有一个使用AJAX脚本链接到PHP脚本的表单。到目前为止,我只有一个提交按钮来处理表单,它将值传递给PHP脚本以生成电子邮件发送。现在我想在表单上有两个选项,要么发送电子邮件,要么在发送之前先查看电子邮件。每个按钮可以有一个不同的值,根据这个值,脚本可以以不同的方式运行。

我不确定使用两个按钮是否是处理此问题的最佳方式。如果是这样的话,我不知道如何处理按钮中的值。是否只传递被单击的按钮的值?

我表单中的其余值以以下方式处理(因为页面上有多个表单(:

var form_data = {
    name: $jform.find("[id^=name]").val(),
    date: $jform.find("[id^=date]").val(),
    time: $jform.find("[id^=time]").val(),
};

我该如何包含按钮的值?有两个按钮看起来像这样:

echo "<button type='submit' class='submit_s' value='view'>View</button>";
echo "<button type='submit' class='submit_s' value='email'>Email</button>";

大概我不可能有两个id相同的按钮,正如我之前提到的,我不确定当我点击一个按钮时是否同时传递了两个按钮值。

我希望能够在AJAX脚本中做这样的事情:

if (button == 'email') {
    $jform.fadeOut(800);
}

最好的办法是什么?

您的输入按钮必须有不同的名称。

echo "<button type='submit' name="name1" class='submit_s' value='view'>View</button>";
echo "<button type='submit' name="name2" class='submit_s' value='email'>Email</button>";

之后,你可以在中完成

$jform.find("input[name=name1]").click(function() { 
     $jform.submit();
})

或者类似的东西。

使用JS函数设置公共字段的值,以跟踪按下了哪个按钮。

添加代码以拾取将由我们的JS函数设置的新字段:

var form_data = {
    name: $jform.find("[id^=name]").val(),
    date: $jform.find("[id^=date]").val(),
    time: $jform.find("[id^=time]").val(),
    button: $jform.find("[id^=button]").val(),
};

我们新的JS函数设置隐藏字段的值:

function setHiddenButtonValue(buttonValue)
{
    $("#button").value = buttonValue;
    return true;
}

将onclick事件添加到我们的按钮中,以便在单击时更新隐藏字段。还绘制了新的隐藏字段:

echo "<input type='hidden' id='button' value='' />";
echo "<button type='submit' class='submit_s' value='view' onclick='return setHiddenButtonValue(this.value);'>View</button>";
echo "<button type='submit' class='submit_s' value='email' onclick='return setHiddenButtonValue(this.value);'>Email</button>";