Avatar billede martinbk Nybegynder
05. juni 2004 - 02:19 Der er 3 kommentarer og
1 løsning

validere input op mod SQL db

hejsa, jeg har stykket nedenstående sammen for at kunne tjekke om et bestemt ID allerede findes i min database, udfra den kode burde ideen fremstå, problemet er jo så nu blot at skidtet ikke virker, synes entlig heller ikke det er særlig kønt, så forslag modtages gerne
<?
$query = mysql_query("SELECT DISTINCT cd_nr FROM numre");
?>
<script>
  var nr = new Array();
  <?
  while($row = mysql_fetch_array($query)) {
  ?>
    nr[nr.length] = <?=$row['nr'];?>
  <?
  }
  ?>
  function validate(f) {
    for(i=0;i<nr.length;i++) {
      if(nr[i].value == f.nr.value) {
        alert("ID'en findes allerede");
    f.nr.select();
    f.nr.focus();
    return false;
      }
    }
  }
</script>
Avatar billede roenving Novice
05. juni 2004 - 02:30 #1
Er den kode, som kommer igennem rigtig ?-)

Prøv at kigge på kilden i vis i browseren, for der skulle du jo kunne se en javascript-array med de allerede optagede !-)
Avatar billede martinbk Nybegynder
05. juni 2004 - 02:35 #2
nej problemet er i den PHP while løkke, nr[nr.length] bliver ikke fortolket
i koden står der derfor:
nr[nr.length] = 1
nr[nr.length] = 2

etc.
Avatar billede martinbk Nybegynder
05. juni 2004 - 05:11 #3
jeg fandt selv en løsning:

$tempstr = "";
$query = mysql_query("SELECT DISTINCT cd_nr FROM numre");
while($row = mysql_fetch_array($query)) {
  $tempstr .= $row['cd_nr'].',';
}
?>
<script>
  var cdNrStr = "<? echo $tempstr; ?>";
  var cdNrArr = cdNrStr.split(",");

  function validate(f) {
  for(i=0;i<cdNrArr.length;i++) {
    if(cdNrArr[i] == f.cdNr.value) {
      alert("En CD med det nummer findes allerede i databasen");
      f.cdNr.select();
      f.cdNr.focus();
      return false;
    }
  }
</script>
Avatar billede roenving Novice
05. juni 2004 - 13:07 #4
nr[nr.length] = 1
nr[nr.length] = 2

er fuldstændig korrekt og vil ikke give nogen problemer i afviklingen af javascriptet ...

Det er faktisk den allerbedste måde at skabe et javascript-array, da du på den måde kan have et vilkårligt antal erklæringer, som netop ser fuldstændig ens ud, med rummer data med forskelligt index !-)

Første gang linjen køres vil arrayet nr have en længde på 0 og du vil lægge noget i nr[0], næste gang vil længden være 1, og der vil derfor blive lagt en værdi i nr[1] osv ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester