Datenbank daten in javaScript

  • Themenstarter Themenstarter DreamArtist
  • Beginndatum Beginndatum
D

DreamArtist

Hallo,

Habe folgendes Problem:

Lese mit PHP daten aus einer Mysql Datenbank aus und will die Ergebnisse in einen JavaScriptArray speichern.

Soweit so gut.

Jetzt enthält aber einer der Daten anführungszeichen " oder sonstige zeichen die html spezifisch sind.

der Ausgelesene Wert hat ca eine Länge von 100 Zeichen.

Wie kann ich diesen nun in meinen Array speichern.
er speichert mir hier stets nur das erste Zeichen.

Hier etwas Code:

for ( $c = 0; $c < count($warengruppen); $c++)
{

$resultSet = mysql_db_query($dbname,
"SELECT ARTIKEL_ARTNR, ARTIKEL_BEZ1, ARTIKEL_DEF21 FROM S1_ARTIKEL WHERE ARTIKEL_WG = '".$warengruppen[$c]."'" );

$er = mysql_error ( $dbh );
if ( $er )
die ( $er );

for ( $i = 0; $row = mysql_fetch_row ($resultSet); $i++ )
{
$w0 = addSlashes ($row[0]);
$w1 = $row[1];
$w2 = addSlashes ($row[2]);

echo "<script type='text/javaScript'> artikeln[".$c."] = ".
"new Array ('".$row[0]."' , '".$w1[1]."' , '".$row[2]."'); </script>";

}
}

echo "<script type='text/javaScript'> alert ( artikeln[71][0] ); </script>";
echo "<script type='text/javaScript'> alert ( artikeln[71][1] ); </script>";
echo "<script type='text/javaScript'> alert ( artikeln[71][2] ); </script>";

Kann mir jemand helfen?
 
Hallo,
ich würde es so angehen (habs allerdings nicht getestet - können also Tippfehler drinnen sein...

PHP:
<head>
<?php
// db connection usw...

echo "<script type='text/javaScript'>";
echo "var artikel = new Array();

for ( $c = 0; $c < count($warengruppen); $c++){
  $query = "SELECT ARTIKEL_ARTNR as artnr,
                   ARTIKEL_BEZ1  as bez1,
                   ARTIKEL_DEF21 as def21
            FROM   S1_ARTIKEL
            WHERE  ARTIKEL_WG = '".$warengruppen[$c]."'";

  $rs = mysql_query($query);
  if (!$rs){ echo "error:".mysql_error(); exit;}
  
  echo "artikel[".$c."] = new Array();";
  
  while ($row = mysql_fetch_assoc($rs)){
    echo "artikel[".$c."]['artnr'] = '".addSlashes($row["artnr"])."';";
    echo "artikel[".$c."]['bez1'] = '".addSlashes($row["bez1"])."';";
    echo "artikel[".$c."]['def21'] = '".addSlashes($row["def21"])."';";
  }
  mysql_free_result($rs);
}
echo "</script>";

?>

  functinon arrayAlert(in){
    var out = '';
    for(var x=0; x<in.length; x++){
       out += x+': '+in[x]['artnr']+' - '+in[x]['bez1']+' - '+in[x]['def21']+'\n';           
    }
    alert(out);
  }

  arrayAlert('artikel');
</head>


bye
 
Zuletzt bearbeitet:
Falls die Daten auch Zeilenumbrüche enthalten, ist es statt addslashes() besser, rawurlencode() zu nehmen...das kannst du in Javascript per unescape() wieder in den eigentlichen String umwandeln.
 
Zurück