Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Checkbox ja nettikauppa (Perl)

tsehov [03.01.2008 22:30:09]

#

Hei kaikille,

Viitsisiköhän täällä kukaan auttaa avutonta. Olen tehnyt web-kaupan käyttäen Perl -kielellä tehtyä Html-Cart:ia (http://html-cart.com/). Kaupan olen toki saanut toimimaan muokkailemalla tiedostoja mutta nyt pitäisi ostossivun vahvistusosioon saada laitetuksi checkbox jonka ruksaamalla asiakas sallisi hänelle lähetettävän tiedotteita (tarjouksia yms.).

En osaa Perl-kieltä mutta olen tähän asti pärjännyt etsiskelemällä netistä apuja ja ohjeita mutta tällä kertaa en pääse hommassa eteenpäin vaikka kuikka taistelisin.

Saan kyllä vahvistussivulle checkboxin ja siihen tarvittavan tekstin näkyviin mutta, koska en osaa Perl:liä en saa cgi-skriptiä käsittelemään mainittua kohtaa.

Seuraavassa pari pätkää tiedostosta html-cart.cgi.

Ensimmäinen on kohdasta 'Display Order Form' ja on tietysti html-kieltä:

<TR>
         <TD colspan="2" class="header_cell">Muuta huomioitavaa / kommentit:</TD>
         </TR>
         <TR>
         <TD colspan="2">
           <p align="center"><textarea style="FONT-SIZE: 10pt" name="comments" rows="6" cols="43">$form_data{'comments'}</textarea></TD>
         </TR>
         <TR>
         <TD colspan="2">
         </TD>
         </TR>
         <TR>
         <TD colspan="2">
         <p align="center"><input type="checkbox" name="Allow_Email" value="Kyll&auml; kiitos, XXXXXXX
saa l&auml;hett&auml;&auml; s&auml;hk&ouml;postiini tarjouksia ja uutiskirjeit&auml;."> Kyll&auml; kiitos, XXXXXXX
saa l&auml;hett&auml;&auml; s&auml;hk&ouml;postiini tarjouksia ja uutiskirjeit&auml;.
         </TR>
         <TR>
         <TD colspan="2">
           <hr noshade size="1" color="#000000">
         </TD>
         </TR>
         </TABLE>
         <CENTER>
         <INPUT TYPE="hidden" NAME="confirm_order"  VALUE=" Vahvista tilaus">
         <INPUT TYPE="submit" NAME="confirm_order"  VALUE=" Vahvista tilaus ">
         <BR>
         </CENTER>
         </FORM>

Toinen onkin sitten Perliä ja siinä se ongelma minulla onkin. Tässä on kyseessä katkelma 'Process Order':ista:

$ord_data .= "Yhteystiedot:\n";
	$ord_data .= "Puhelinnumero: $form_data{'phone'}\n";
#	$ord_data .= "Fax: $form_data{'fax'}\n";
	$ord_data .= "E-Mail: $form_data{'email'}\n\n";

	$ord_data .= "Tuotteet ja hinta:\n";

	open (CART, "$shopping_cart");
	while (<CART>)
	{
	   $cart_count++;
		@cart_data = split (/\|/, $_);
		$ord_data .= "$cart_data[1]  $cart_data[2]  $cart_data[3]\n";
	}
	close (CART);

   $form_data{'subtotalamount'}   = &display_price($form_data{'subtotalamount'});
   $form_data{'shippingamount'}   = &display_price($form_data{'shippingamount'});
#   $form_data{'salestaxamount'}   = &display_price($form_data{'salestaxamount'});
   $form_data{'chargetotal'} = &display_price($form_data{'chargetotal'});

	$ord_data .= "----------------------------\n";
	$ord_data .= "Hinta: $form_data{'subtotalamount'}\n";
	$ord_data .= "Postikulut: $form_data{'shippingamount'}\n";
#	$ord_data .= "Sales Tax: $form_data{'salestaxamount'}\n";
	$ord_data .= "Loppusumma: $form_data{'chargetotal'}\n";
	$ord_data .= "----------------------------\n\n";


	$ord_data .= "Kommentit:\n$form_data{'COMMENTS'}\n";

	$ord_data .= "Testi:\nAllow_Email\n";

Tuossa viimeisellä rivillä lienee koko ongelma. Nyt siinä on merkiksi testi, sillä olen kokeillut vaikka mitä virityksiä mutta ainoa mitä saan tapahtumaan on se että kaupan saamaan tilausviestiin tulostuu aina 'Testi: Allow_Email', oli kohta sitten valittuna tai ei. Eli en saa tätä skriptiä käsittelemään sitä ylempänä mainittua checkbox:ia.

Olen hyvin kiitollinen jo etukäteen jos joku osaisi ja viitsisi hieman auttaa asiassa.

Hakoulinen [04.01.2008 10:27:36]

#

$ord_data .= "Testi:\nAllow_Email\n";

näin:

$ord_data .= "Testi:\n$form_data{'Allow_Email'}\n";

EDIT: Jos osais tuota perlin syntaksia yhtään niin voisi vääntää sen if-lauseen minkä tarvitsis

tsehov [04.01.2008 11:11:01]

#

Hakoulinen kirjoitti:

näin:

$ord_data .= "Testi:\n$form_data{'Allow_Email'}\n";

Kiitos avusta, mutta tuokaan ei toimi - se tulostaa vain 'Testi:'.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta