functie in joomla virtuemart checkout

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Doruuu
New Member
Mesaje: 2
Membru din: Joi Feb 24, 2011 5:18 pm

functie in joomla virtuemart checkout

Mesajde Doruuu » Joi Feb 24, 2011 5:24 pm

Salut.

Sunt incepator in ale php-ului si va cer un pic de ajutor.

Am creat in user fields, in checkout, o bifa pentru client, sa selecteze el daca vrea factura pe firma sau persoana fizica.

Ce vreau eu sa fac, este sa si afisez ce a selectat.

Am creat astfel:

<?php

$vm_persoana = 1;

if ( $vm_persoana == 2 ) {
echo "Persoana juridica";
} else {
echo "Persoana fizica";
}

?>

si nu merge

vm_persoana este field name
1 e pers fizica
2 e pers juridica

daca pun <?php $db->p("vm_persoana"); ?>, imi apare 1 sau 2 si nu vreau asta


cum sa fac sa chem din baza de date valoarea ?



Avatar utilizator
teachme
Senior Member
Mesaje: 550
Membru din: Mar Aug 17, 2010 11:52 am

Mesajde teachme » Joi Feb 24, 2011 11:20 pm

pentru ca variabila aia $vm_persoana nu o citeste din baza de date.

La $db->p("vm_persoana"); apare direct 1 sau 2 sau trebuie sa ii dai echo ?
Daca apare direct... iti trebuie ceva care sa returneze valoarea variabilei.

Doruuu
New Member
Mesaje: 2
Membru din: Joi Feb 24, 2011 5:18 pm

Mesajde Doruuu » Joi Feb 24, 2011 11:35 pm

Nici nu stiu cum sa zic.

Este vorba de un select, la un urma urmei. L'am numit vm_persoana, si virtuemartu inregistreaza in baza de date, ce valoare alege clientu.
1 e pentru fizica si 2 pentru juridica.

vm_persoana are ca titlu PHPSHOP_SHOPPER_FORM_PERS (ca am eng/rom)

1 are ca titlu PHPSHOP_SHOPPER_FORM_FIZICA
2 are ca titlu PHPSHOP_SHOPPER_FORM_JURIDICA

ce vreau eu de fapt, este exact inversul acestui proces. in urmatoarea pagina a procesului de comanda, sa citesc din baza de date ce a selectat clientu, valoarea 1 sau 2, si sa imi afiseze cuvantul asociat fiecarei cifre.

de exemplu, ca sa afisez numele companiei, fac asa:

<?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_COMPANY') ?>: <?php $db->p("company"); ?>

si imi afiseaza

eh, daca fac asa si cu persoana, imi afiseaza 1, in loc sa imi afiseze 'fizica'

of, sper ca m'am facut inteles

multumesc frumos

iSeLast
Junior Member
Mesaje: 42
Membru din: Mar Mar 30, 2010 2:35 pm
Localitate: Rm. Valcea
Contact:

Mesajde iSeLast » Vin Feb 25, 2011 12:23 am

Depinde ce face si acea functie din clasa ta, din cate pare, ea lucreaza la general, asa ca ar trebui sa o modifici putin.
Ca solutie pentru un SELECT care sa iti dea un string in locul unei cifre, ar fi:

Cod: Selectaţi tot

SELECT (
   SELECT CASE form_pers
      WHEN 1 THEN 'fizica'
      WHEN 2 THEN 'juridica'
      END) as tip_persoana
FROM `vm_persoana`


Acum poate nu vrei sa modifici clasa, asa ca iti mai dau o solutie.
[php]
<?php
function callback($buffer)
{
return ($buffer==1 ? str_replace('1', 'fizica', $buffer) : str_replace('2', 'juridica', $buffer));
}
ob_start('callback');
$vm_persoana=1;
echo $vm_persoana;
ob_end_flush();
?>
[/php]
Functia callback iti va inlocui 1 sau 2 cu fizica/juridica in partea ta de cod delimitata de ob_start() si ob_end_flush, pentru mai multe detalii poti citi aici: http://www.php.net/manual/en/function.ob-start.php


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 27 vizitatori