使用Joomla API 1.5的代码出错:使用一个使用JRequest :: getVar接收post请求的变量

时间:2011-02-15 20:06:12

标签: php api joomla joomla1.5

我正在使用joomla框架从POST请求返回值,打印屏幕显示数据,但在使用数组向我发送方法并打印或发送数据时。

在这里,我把代码变成了白发,先谢谢。

这是控制器:


/**
 * Construct (registers additional tasks to methods).
 */
function __construct(){
    parent::__construct();

    //Registro de tareas extra
    $this->registerTask('add','ingresarPlanilla');
}//function


function ingresarPlanilla(){

    // Comprueba del request la clave de falsificación
    //JRequest::checkToken('post') or die( 'Objeto invalido' );

    $task = JRequest::getVar('task');

    $model = &$this->getModel('planilla');

    if ($returnid = $model->ingresar()) {
        switch ($task) {
            case 'add' :
                $link = '?option=com_mercurio&view=planilla&controller=planilla&task=add';
                break;
            default :
                $link = 'index.php?option=com_mercurio&view=planilla';
                break;
        }   
        $msg = JText::_( 'PLANILLA INGRESADA' );
        $cache = &JFactory::getCache('com_mercurio');
        $cache->clean();
    } else {
        $msg = 'PLANILLA NO INGRESADA';
        $link = 'index.php?option=com_mercurio&view=planilla';
    }
    //$model->checkin();
    $this->setRedirect($link, $msg);
}

}


这是模型:


    $cliente = new SoapClient(URLMERCURIOWS.URLWSPLANILLA, array('login'=>LOGINWS,'password'=>PASSWORDWS));

    if (is_soap_fault($cliente)) {
        trigger_error("SOAP Fault: (faultcode: {$arr->faultcode}, faultstring: {$arr->faultstring})", E_USER_ERROR);

        return false;
    }

    $postost = JRequest::get( 'post', JREQUEST_ALLOWHTML );


    $postost['cdPoblacionOrigen']    = JRequest::getVar('cdPoblacionOrigen', '', 'post', 'cdPoblacionOrigen');
    $postost['nmSecDniCliente']    = JRequest::getVar('nmSecDniCliente', '', 'post', 'nmSecDniCliente');
    $postost['cdAgenciaCliente']    = JRequest::getVar('cdAgenciaCliente', '', 'post', 'cdAgenciaCliente');
    $postost['nmPesoTransportado']    = JRequest::getVar('nmPesoTransportado', '', 'post', 'nmPesoTransportado');
    $postost['nmVolumenTransportado']    = JRequest::getVar('nmVolumenTransportado', '', 'post', 'nmVolumenTransportado');
    $postost['nmUndsTransportadas']    = JRequest::getVar('nmUndsTransportadas', '', 'post', 'nmUndsTransportadas');

    $planilla = array();
    $planilla = $postost;

    echo $postost['cdPoblacionOrigen']."</br>"; 
    echo $postost['nmSecDniCliente']."</br>";
    echo $postost['cdAgenciaCliente']."</br>";
    echo $postost['nmPesoTransportado']."</br>";
    echo $postost['nmVolumenTransportado']."</br>";
    echo $postost['nmUndsTransportadas']."</br>";


    $cliente->ingresarPlanilla( AGENCIAXDEFECTO, null, null, null, $postost['cdPoblacionOrigen'], $post['nmSecDniCliente'],  $post['cdAgenciaCliente'],  null, $post['nmPesoTransportado'],  $post['nmVolumenTransportado'],  $post['nmUndsTransportadas'], null, null,  null,  null,  null, null,  null,  null,  null);

    return true;
}

这是观点:


<form id="ingresarPlanilla" name="ingresarPlanilla" method="post" action="?option=com_mercurio&view=planilla&controller=planilla&task=add">
    <table width="98%" border="1" bordercolor="#ECE9D8">    
        <tr>
          <td width="21%" class="titulo" align="center">Ingresar Planilla</td>
          <td width="29%">&nbsp;</td>
          <td width="21%">&nbsp;</td>
          <td width="29%">&nbsp;</td>
        </tr>

        <tr>
            <td colspan="2">Agencia Origen</td>         
            <td colspan="2"><input name="cdAgenciaOrigen" type="text" class="campo_noeditable" id="cdAgenciaOrigen" value="<?php echo AGENCIAXDEFECTO;?>"readonly="readonly"/></td>
        </tr>

        <tr>
            <td colspan="2">Poblacion Origen</td>           
            <td colsp man="2"><input name="cdPoblacionOrigen" type="text" class="campo" id="cdPoblacionOrigen" /></td>
        </tr>

        <tr>
            <td colspan="2">DNI Cliente</td>            
            <td colspan="2"><input name="nmSecDniCliente" value="<?php echo $aux[5];?>" type="text" class="campo" id="nmSecDniCliente"/></td>
        </tr>

        <tr>
            <td colspan="2">Peso Transportado</td>          
            <td colspan="2"><input name="nmPesoTransportado" type="text" class="campo" id="nmPesoTransportado "/></td>
        </tr>

        <tr>
            <td colspan="2">Volumnen Transportado</td>          
            <td colspan="2"><input name="nmVolumenTransportado" type="text" class="campo" id="nmVolumenTransportado"/></td>
        </tr>

        <tr>
            <td colspan="2">Unidades Transportados</td>         
            <td colspan="2"><input name="nmUndsTransportadas" type="text" class="campo" id="nmUndsTransportadas"/></td>
        </tr>


        <tr>
            <td colspan="3">Observaciones</td>
        </tr>
        <tr>
            <td colspan="3"><textarea name="observaciones" cols="60" rows="3" class="campo" id="observaciones"></textarea></td>
        </tr>

        <tr>
            <td class="label"><input type="submit" name="Enviar" id="Enviar" value="Enviar" /></td>
        </tr>

        <input type="hidden" name="option" value="com_mercurio" />
        <input type="hidden" name="cdAgenciaCliente" value="<?php echo $aux[6];?>" />
        <input type="hidden" name="view" value="<?php echo JRequest::getVar('view'); ?>" />
        <input type="hidden" name="task" value="" />
        <?php echo JHTML::_( 'form.token' ); ?>

1 个答案:

答案 0 :(得分:0)

您可以使用下面的这一行将所有POST数据读入具有键值对的数组中。

$post = JRequest::get('post');

这会将所有值加载到数组中。所以你会像上面那样使用上面的内容:

$post = JRequest::get('post');
echo $post['cdPoblacionOrigen']; // prints value of post for input with name 'cdPoblacionOrigen'