我很想知道如何在不重新加载/刷新的情况下从一个php表单中发送和管理2个值。这是一个简单的上下投票公式,只需点击一下即可投票。
我从表格开始:
echo "<form id='votingform' method='post'>";
echo "<button id='rateup' /><i class='fa fa-thumbs-o-up fa-2x'></i></button>";
echo "<button id='ratedown' /><i class='fa fa-thumbs-o-down fa-2x'></i></button>";
echo "<input type='hidden' value='".$id."' name='rateid' />";
echo "</form>";
然后我使用一些jquery来阻止公式提交并为测试目的添加一些可见的响应:
$(document).ready(function() {
var form = $('#votingform');
var submit = $('#rateup'); // submit button
var submit2 = $('#ratedown'); // submit button
// form submit event
form.on('submit', function(e) {
e.preventDefault(); // prevent default form submit
$.ajax({
url: '', // form action url
type: 'POST', // form submit method get/post
dataType: 'html', // request type html/json/xml
data: form.serialize(), // serialize form data
beforeSend: function() {
alert.fadeOut();
submit.html('Sending....'); // change submit button text
},
success: function(data) {
alert.html(data).fadeIn(); // fade in response data
form.trigger('reset'); // reset form
submit.html('Send Email'); // reset submit button text
},
error: function(e) {
console.log(e)
}
});
});
});
form.on('submit2', function(e) {
e.preventDefault(); // prevent default form submit
$.ajax({
url: '', // form action url
type: 'POST', // form submit method get/post
dataType: 'html', // request type html/json/xml
data: form.serialize(), // serialize form data
beforeSend: function() {
alert.fadeOut();
submit.html('Sending....'); // change submit button text
},
success: function(data) {
alert.html(data).fadeIn(); // fade in response data
form.trigger('reset'); // reset form
submit.html('Send Email'); // reset submit button text
},
error: function(e) {
console.log(e)
}
});
});
});
并添加了一些动作:
if( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ){
$vote1 = $_POST['rateup'];
$vote2 = $_POST['ratedown'];
echo $vote1; echo $vote2;
// sql part goes here
}
return;
}
$ vote1没问题,$ vote2为空。有没有人对此有所了解并可以帮助我解决这个问题?或者也许是一种更聪明的方法让这个东西起作用?感谢您的帮助!
答案 0 :(得分:1)
按钮元素不发送它们的值 - 因此没有POSTed值。 将您的元素更改为
java -Xms256M -Xmx512M
答案 1 :(得分:0)
试试这个:
$http_post = ('POST' == $_SERVER['REQUEST_METHOD']);
if($http_post)
{
echo $_POST['submit']; // no result
echo $_POST['test'];
}
如果您点击up
,则$_POST['submit']
会回显“向上”,如果您点击down
,则$_POST['submit']
会回显'向下'