【发布时间】:2013-02-23 13:09:26
【问题描述】:
我有以下 HTML 代码:
<form method="post" action="the_file.php" id="the-form">
<input type="text" name="the_input" value="<?php if ( isset( $_POST['the_input'] ) echo $_POST['the_input]; ?>">
<button type="submit" name="eat_something" value="TRUE">Eating</button>
<button type="submit" name="eat_something" value="FALSE">Don't Eat</button>
</form>
<textarea id="result"></textarea>
后跟这个JS:
$('#the-form').bind('submit', submitForm);
function submitForm(evt) {
jQuery.post(
$(this).attr('action'),
$(this).serialize(),
function(data) {
$('#result').empty().append(data).slideDown();
});
evt.preventDefault();
}
我还有一个 PHP 脚本,它在提交时从输入中接收 $_POST 值,并运行一个条件来测试单击了哪个提交按钮。
像这样:
$input = $_POST['the_input'];
$eating = $_POST['eat_something'];
if ( $eating == 'TRUE' ) {
// Do some eating...
} else {
// Don't you dare...
}
如果我不使用 jQuery.post() 函数,按钮的提交值将被发布。但是,由于某种原因,我无法使用 jQuery.post() 函数将按钮值传递给 PHP $_POST。如果我不使用 jQuery.post(),则输出不会附加到 textarea,而是以文本格式附加到单独的页面上,例如文档。我也尝试在按钮$('button[type=submit]').bind('submit', submitForm); 上调用提交函数,但这也不能解决我的问题。
提前感谢您的帮助。
【问题讨论】:
-
.post()是一个 ajax 调用。您定义提交的值。如果您希望提交按钮值,请将它们一起发送。 -
不知道是怎么做的,建议?
-
我给出了答案...未测试,但应该很接近。
标签: php jquery post submit-button