回显窗体上未传递的函数值(&A;T) [英] echo a function value won't pass on a form

查看:33
本文介绍了回显窗体上未传递的函数值(&A;T)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

-更新:正在尝试寻找不同的解决方案here, please take a look 我正试图发布一个与隐藏的价值在一个商店平台与支付网关接收价值的表格。 值名称"Order_Total"使用名为"$sum"的php回显来显示要支付的金额:

<Input type="hidden" name="sum" value="<?php echo $order_total; ?>"> 

$sum是读取用户订单ID金额的函数

$order_total    = left_to_pay_for_order($oid);

该函数的工作方式如下:

function left_to_pay_for_order($oid)
{


global $wpdb;
    $s = "select * from ".$wpdb->prefix."order_contents where orderid='$oid' and paid='0'";
    $r = $wpdb->get_results($s);
    $total = 0;
    if(count($r) > 0)
    {
        foreach ($r as $row)
        {
            $total += $row->price * $row->quant;    
            $shp = get_post_meta($row->pid, 'shipping', true)* $row->quant;
            $total += $shp;
        }

    }

return $total;
}

支付网关接收除$ORDER_TOTAL值之外的所有其他值。

更新!! 传递的值为"0"-您认为可能会发生这种情况吗?

我已经测试过了,该函数在发送表单和重定向之前工作,发送前的任何HTML上根据预期结果显示总和,但表单发送值为"0"。

我做错了什么?到处都找遍了。非常感谢您的帮助。

谢谢!!

根据请求,下面是按StackOverflow代码修改的整个表单页面:

    <?php

    global $wp_query, $wpdb, $current_user;

    get_currentuserinfo();
    $uid = $current_user->ID;
    $user_email = $current_user->user_email;

    $business = get_option('Theme_tranzilla_ID');
    if(empty($business)) die('ERROR. Please input your tranzilla ID.');
    //-------------------------------------------------------------------------
    $oid = $_GET['oid'];    
    $order_total = Theme_left_to_pay_for_order($oid);
    $title_post = sprintf(__('Order Payment ID #: %s','Walleto'), $oid);


    //---------------------------------


    $tm             = current_time('timestamp',0);
    $cancel_url     = get_bloginfo("siteurl");
    $response_url   = get_bloginfo('siteurl').'/?w_action=tranzila_order_response';
    $ccnt_url       = Theme_my_account_link();
    $currency       = get_option('Theme_currency');

?>


<html>
<head><title>Processing Tranzilla Payment...</title></head>
<body onLoad="document.form_mb.submit();">
<center><h3><?php _e('Please wait, your order is being processed...', 'Theme'); ?></h3></center>

<FORM name="form_mb" Action='https://direct.tranzila.com/Terminal_Name/' method='POST'>
<Input type="hidden" name="supplier" value="<?php echo get_option('Theme_tranzilla_ID') ?>"> 
<Input type="hidden" name="sum" value="<?php echo $order_total; ?>"> 
<Input type="hidden" name="currency" value="1"> 
<input type="hidden" name="email" value="<?php echo $user_email; ?>">

</FORM>




</body>
</html>

推荐答案

请告诉我们您在"检查"中看到了什么。POST之前输入中的值是什么。

但是。根据您提供的信息,我认为:

1) You are missing a ; in the end of "echo $order_total" line. Put a ; in the end.
2) It can be some wordpress conflict with the "sum" field name. Try to change to "order_total".

这篇关于回显窗体上未传递的函数值(&A;T)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆