leeren Wert [null] abfangen?

Begonnen von dobra, April 04, 2011, 22:46:18

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

bei klick auf ein Image soll ein Wert (im Beispiel 21) übergeben werden

HTML:
<a href="javascript:void()" onclick="slider1(21);"> <img style="border:none;" src="../images/arrow_weiter.gif"></a>

JS
function slider1(xweiter){

if (-1 != myinterface.search(/__xxpath__\?/)) {
      return;
  }

if (document.getElementById("xmin")) { var min = document.getElementById('xmin').value;}
##div, Variablen auslesen

  var postdata = {
method : 'slidersearch1',
id : 0,
params : [min,max,min2,max2,kat,asdesc,orderby,herst,xweiter]
};


ipl
  my $limit = $pCall->{params}[8]; # nächste Seite
 
  my $count = ssp::readSQLData(qq|SELECT ITEMID, ... FROM $ITEM WHERE ... ORDER BY $orderby $updown LIMIT $limit,21|, "ITEMID",....);


das funktioniert, wenn der Link angeklickt wird

firebug
{"method":"slidersearch1","id":0,"params":["1.5","5.9","5.5","15","alle","ASC","ARTIKELNAME","",21]}

wird die Seite aber aufgerufen OHNE dass dieser Link geklickt wurde, wird "null" übergeben
{"method":"slidersearch1","id":0,"params":["1.5","5.9","5.5","15","alle","ASC","ARTIKELNAME","",null]}

und ich bekomme die Fehlermeldung
DBD::ODBC::st execute failed: [MySQL][ODBC 3.51 Driver][mysqld-5.0.67-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '21' at line 1 (SQL-42000)(DBD: st_execute/SQLExecute err=-1) at Ibodata.pm line 1986.


das ist mir soweit auch klar - "null" ist ja keine Zahl und kann daher nicht in einer LIMIT-Bedingung verwendet werden

meine vergeblichen Versuche
  my $weiter = $pCall->{params}[8]; # nächste Seite
  my $limit = 0;
if (lenght($weiter)) {$limit = $weiter;}

oder
if ($weiter ne "null") {$limit = $weiter;}
oder
if ($weiter != 0) {$limit = $weiter;}
funktioniert alles nicht und google hat mir auch keine Lösung verraten  :(

wie kann ich dieses "null" wenn kein Wert übergeben wird abfragen?
mfG
dobra

dobra

dummer Gedankenfehler  :-[

hatte im body-tag
<body  onload="slider1();">

wenn ich Werte mit
<a href="javascript:void()" onclick="slider1(21);">
übergeben will, müssen die natürlich auch hier definiert sein!

also im Beispiel
<body  onload="slider1(0);">
wenn der Startwert "0" sein soll

dann funktioniert auch
my $limit = $pCall->{params}[8]; # nächste Seite

und
... LIMIT $limit,21 ...
in der DB-Abfrage  :)
mfG
dobra

dobra

Nachtrag:

"null" Wert abfragen geht auch - aber NICHT in der ipl-Datei sondern das muss bereits in der js-Datei erfolgen

if (xweiter == null) {var xweiter = 0;}

nur der Vollständigkeit halber
(und für mich zum nachlesen, wenn ich das beim nächsten Projekt wieder vergessen habe  ;) )
mfG
dobra