我需要获取具有jQuery脚本值的输入的$_POST
值,但出于某种原因,当我尝试var_dump
整个$_POST
时,字段{ {1}}(具有脚本值的那个)根本不输出任何内容。
以下是您未成年人的一些代码:
jQuery代码:
amount
这是html:
$(document).ready(function(){
update();
});
$('input[type=checkbox]').click(function(){
update();
})
function update(){
var amount2 = 0;
var options = 0;
$('#instNum2 option').remove();
$('.check_list').each(function () {
if (this.checked) {
amount2 += Number($(this).attr("val"));
options ++;
}
});
$("#amount2").val("R$"+amount2.toFixed(2));
该功能很简单,它在选择时将每列的值相加,然后在输入上打印总值。
问题是当我在提交表单后尝试使用通用<div class="row control-group">
<div class="form-group col-xs-12 floating-label-form-group controls">
<br><h4 style="margin-top: -5px;">Total Selecionado:</h4>
<input type="text" class="form-control" id="amount2" name="amount">
<p class="help-block text-danger"></p>
</div>
</div>
捕获输入的总值时,它会打印一个空字段......
有什么想法吗?
答案 0 :(得分:0)
我认为有两个错误。
第一次:更新#amount2
的行超出了update()
功能。
第二:此行失败amount2 += Number($(this).val());
您想要输入的输入值(或修改后的值)...不是value attribute
的值。
区别在于:
$(this).attr("val")
会返回属性中定义的内容,如下所示:
<input type="text" class="form-control" id="amount2" name="amount" value="default value">
$("#amount2").val()
将返回实际值。
你的意思:
function update(){
var amount2 = 0;
var options = 0;
$('#instNum2 option').remove();
$('.check_list').each(function () {
if (this.checked) {
amount2 += Number($(this).val());
options ++;
}
$("#amount2").val("R$"+amount2.toFixed(2));
console.log($("#amount2").val());
});
我添加了一个console.log,用于检查执行update()
函数时是否存在所需的值。
根据评论编辑
在PHP中试试这个:
if (isset($_POST['amount'])){
echo "$_POST['amount'] is set.<br>";
echo "It's value is: x" . $_POST['amount'] . "x"; // if it is empty, you'll get "xx" echoed.
}else{
echo "$_POST['amount'] is NOT set.<br>";
}
答案 1 :(得分:0)
解决方案很简单,只需选择输入名称,而不是选择输入的ID。
之前:
$("#amount2").val("R$"+amount2.toFixed(2));
后:
$("input[name=amount]").val("R$"+amount2.toFixed(2));
这将获得标记名称,$_POST
将正常工作。