Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[javascript] embedden in HTML probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Geachte,

Voor mijn webshop wil ik een simpel script installeren waarmee ik de paypal button kan tonen indien betaalmethode 'PayPal' is geïnstalleerd. Dit is javascript in een .tpl bestand, wat weer wordt aangeroepen door de cgi kassa engine, dat resulteert in een .html bestand:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 <script language="JavaScript" type="text/javascript">
                <!-- 
                  if (<#PAYMENTCONFIGNAME>=="PayPal")
                     {document.write('<tr>
                                        <td>&nbsp;</td>
                                        <td>
                                            <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
                                               <input type="hidden" name="cmd" value="_cart">
                                               <input type="hidden" name="upload" value="1">
                                               <input type="hidden" name="business" value="<#FIELD CustEmail>">
                                               <input type="hidden" name="item_name_1" value="Item Name 1">
                                               <input type="hidden" name="amount_1" value="<#FIELD totalprice PRICE>">
                                               <input type="hidden" name="currency_code" value="EUR">
                                               <input type="submit" value="PayPal">
                                            </form>
                                        </td>
                                      </tr>');
                      }
                  else
                      {document.write('geen paypal test');
                      } 
                // end paypal elseif -->
                </script>


Kan het zijn dat dit niet werkt doordat dit vanuit tpl bestand wordt aangeroepen? Of doe ik iets anders fout?

  • André
  • Registratie: Maart 2002
  • Laatst online: 13-11 13:40

André

Analytics dude

Deze waardes: <#PAYMENTCONFIGNAME> zullen vervangen moeten worden door je CMS. Gebeurd dat ook wanneer je de pagina in een live omgeving bekijkt?

Verwijderd

Topicstarter
Als ik de broncode van het gegenereerde html bestand bekijk zie ik

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script language="JavaScript" type="text/javascript">
                <!-- 
                  if (=="PayPal")
                     {document.write('<tr>
                                        <td>&nbsp;</td>
                                        <td>
                                            <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
                                               <input type="hidden" name="cmd" value="_cart">
                                               <input type="hidden" name="upload" value="1">
                                               <input type="hidden" name="business" value="">
                                               <input type="hidden" name="item_name_1" value="Item Name 1">
                                               <input type="hidden" name="amount_1" value="">
                                               <input type="hidden" name="currency_code" value="EUR">
                                               <input type="submit" value="PayPal">
                                            </form>
                                        </td>
                                      </tr>');
                      }
                  else
                      {document.write('geen paypal test');
                      } 
                // end paypal elseif -->
                </script>


Dat werkt het niet, maar zonder html comment out werkt het ook niet en zie ik:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script language="JavaScript" type="text/javascript"> 
                  if (PayPal=="PayPal")
                     {document.write('<tr>
                                        <td>&nbsp;</td>
                                        <td>
                                            <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
                                               <input type="hidden" name="cmd" value="_cart">
                                               <input type="hidden" name="upload" value="1">
                                               <input type="hidden" name="business" value="tester">
                                               <input type="hidden" name="item_name_1" value="Item Name 1">
                                               <input type="hidden" name="amount_1" value="446,96">
                                               <input type="hidden" name="currency_code" value="EUR">
                                               <input type="submit" value="PayPal">
                                            </form>
                                        </td>
                                      </tr>');
                      }
                  else
                      {document.write('geen paypal test');
                      } 
                </script>


De variabele waarmee de payment method wordt geselecteerd, is die niet geschikt voor javascript?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:02

TeeDee

CQB 241

Het 2e stuk code lijkt me aardig werkend, zeker gezien het feit dat er nu wel waardes (amount_1) getoond worden. Definieer ook 'het werkt niet' eens.

Debug eens en kijk wat PayPal is.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Cartman!
  • Registratie: April 2000
  • Niet online
Wat is 'PayPal' variabele? Waar zet je die en wat is de waarde? Gebruik eens Firebug en zie wat er mis gaat. Ik gok dat <#PAYMENTCONFIGNAME> een serverside variabele is die je moet zetten in je template. Het scriptje controleert of de gebruiker paypal heeft gekozen en als dat zo is laat ie het formulier zien van Paypal.

Je moet dus even uitzoeken welke variabele dat bij jou is en die parsen op die plek in je script.

Verwijderd

Topicstarter
Als ik een andere betaalmethode selecteer dan heb ik als waarde van <#PAYMENTCONFIGNAME> geen PayPal gekregen maar bijvoorbeeld Rembours, dus moet hij al 'geen paypal test' weergeven maar dit gebeurt zelfs niet. Met firebug-lite (het is verboden om op deze computer firefox te installeren...) krijg ik dit stukje code niet te zien wat betekent dat het hele stuk javascript niet actief is? Het google analytics scriptje zie ik b.v. wel in de firebug.

[ Voor 19% gewijzigd door Verwijderd op 04-08-2008 11:36 ]


Verwijderd

Topicstarter
Kan het ook nog met server instellingen te maken hebben?

  • soczol
  • Registratie: Oktober 2002
  • Laatst online: 17-11 17:58

soczol

Doet iets met energie

Als ik het goed begrijp, wordt er door een server side script 'PAYMENTCONFIGNAME' vervangen door bijv. PayPal, of Rembours, etc.. If so, wordt het dan niet gewoon iets ala:

if ("<#PAYMENTCONFIGNAME>"=="PayPal")

Zodat javascript 't als string ziet en niet als het (niet bestaande) object 'PayPal'?

Al blijft natuurlijk de vraag waarom je dit uberhaupt via Javascript wilt gaan doen. Kent de template taal zelf geen 'if'-statements zodat je zelf de html code kan tonen indien paypal geselecteerd is?

[ Voor 51% gewijzigd door soczol op 04-08-2008 11:47 ]


Verwijderd

Topicstarter
Inderdaad, de codes met een hekje ervoor worden omgezet. Deze krijgen we van de ontwikkelaar van de software zodat we zelf 'makkelijk' dingen kunnen aanpassen in de templates, de code staat dus in een .tpl bestand tussen de html en wordt gebruikt door de cgikassa.exe bij het afrekenen van de bestelling. Als ik het goed begrijp moet ik comments voor en achter de javascript code zetten (zoals hierboven) zodat de server de javascript niet handled als html maar dan worden de <#variabele> weer niet omgezet naar hun waarde. Maar als ik dit scriptje nu laad in een .html bestand op mijn pc in IE, dan moet ik toch al de else te zien krijgen?

<script language="JavaScript" type="text/javascript">
if ("PayPal"=="PayPal")
{document.write('<tr>
<td> </td>
<td>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="tester">
<input type="hidden" name="item_name_1" value="Item Name 1">
<input type="hidden" name="amount_1" value="446,96">
<input type="hidden" name="currency_code" value="EUR">
<input type="submit" value="PayPal">
</form>
</td>
</tr>');
}
else
{document.write('geen paypal test');
}
</script>

[ Voor 4% gewijzigd door Verwijderd op 04-08-2008 12:13 ]


Verwijderd

Topicstarter
Als foutmelding in IE krijg ik wel "tekenreeksconstante niet afgesloten".

  • soczol
  • Registratie: Oktober 2002
  • Laatst online: 17-11 17:58

soczol

Doet iets met energie

Ik vermoed dat je geen multiline statements kunt maken, probeer eens statements te maken per regel, dus als volgt:

HTML:
1
2
3
4
5
6
<script>
// ...
document.write("<tr>");
document.write("<td> </td>");
// ..etc..
</script>

Verwijderd

Topicstarter
Dat was het. Bedankt.
Pagina: 1