我想将计算器结果传递给php文件,结果会改变产品数量。
我想将起始值设置为计算器页面的结果。 我在计算器页面上有一个按钮,点击按钮后,页面将进入产品页面并将计算结果传递给产品数量。
我不知道如何将它传递给这个php文件。
这是我的HTML
<div>Total: <span id="finaltotalresult">6.864</span>metric tons</div>
<form method="post" action="http://carboncreditcapital.com/offset">
<input type="hidden" name="finalresult">
<input type="submit" value="Offset Now" id="offset" >
</form>
的javascript:
$("#offset").on('click',function(){
var text =$("#finaltotalresult").text();
var val = Math.round(parseFloat(text));
$.post('/dev/wp-content/themes/responsive-child/functions.php',{val: val}, function(){
});
});
这是php:
$val= $_POST['val'];
add_filter( 'woocommerce_quantity_input_args', 'jk_woocommerce_quantity_input_args', 10, 2 );
function jk_woocommerce_quantity_input_args( $args, $product ) {
$args['input_value'] = $val; // Starting value
$args['max_value'] = 80; // Maximum value
$args['min_value'] = 1; // Minimum value
$args['step'] = 1; // Quantity steps
return $args;
}
答案 0 :(得分:0)
您应该将隐藏字段的值设置为与其中的内容相同
<input type="hidden" name="finalresult" value="setValueHereUsingBelowJS">
<script>
$('input[name=finalresult]').val(
$('#finaltotalresult').html()
);
</script>
要在服务器上访问,请使用$_POST['finalresult'];
答案 1 :(得分:0)
我认为你最有可能是$val
变量的范围问题。当你在函数
$val = $_POST[ 'val' ];
但你在函数中使用它而没有导入它,它在那里不可用。
所以你可能需要做的事情(其余代码看起来不太错,但很难说,因为我无法用你的示例代码重现)是在那里导入那个变量。一个简单的方法代码是使用闭包:
$val = $_POST[ 'val' ];
add_filter( 'woocommerce_quantity_input_args',
function ( $args, $product ) use ( $val )
{
$args[ 'input_value' ] = $val; // Starting value
$args[ 'max_value' ] = 80; // Maximum value
$args[ 'min_value' ] = 1; // Minimum value
$args[ 'step' ] = 1; // Quantity steps
return $args;
}, 10, 2 );
另一种选择是在过滤器功能中使用超全局。
答案 2 :(得分:-1)
您可以尝试使用隐藏的输入:
<input type="hidden" name="result" value="123">
在接收php上阅读它:
$result = $_POST['result'];