Avatar billede clauska Juniormester
25. oktober 2005 - 14:51 Der er 11 kommentarer og
2 løsninger

Hjælp til database i script

Hej Alle

Mit problem er at få lagt data fra en database ind i arrayet i javascriptet.

I denne variabel "$manufacturers_query" ligger det data jeg skal bruge man hvordan ligger jeg den i toparray.

Håber at nogen kan hjælpe mig.

<html>
<head>
<link rel="STYLESHEET" type="text/css" href="classic.css">
<script type="text/javascript" src="fade.js"></script>
<script type="text/javascript" src="select.js"></script>
<script type="text/javascript" src="writeSelect.js"></script>
</head>
<body>
<!-- infobox_start //-->
<tr>
<td>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td height="14" class="infoBoxHeading"><BR></td>
<td width="100%" height="14" class="infoBoxHeading">&nbsp;Test Box</td>
<td height="14" class="infoBoxHeading" nowrap><BR></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="1" class="infoBox">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="3" class="infoBoxContents">

<tr>
<td align="center" class="boxText">

<?php
  $manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name");

  $manufacturers_array = array();
      if (MAX_MANUFACTURERS_LIST < 2) {
        $manufacturers_array[] = array('id' => '', 'text' => PULL_DOWN_DEFAULT);
      }
      echo "\n". '<script>';
     
      echo "\n". 'topArray = new Array();';
      $taeller=0;
      while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {
        $manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN) . '..' : $manufacturers['manufacturers_name']);
        //$manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'],
        //                                      'text' => $manufacturers_name);
       
       
        echo "\n". 'topArray['.$taeller.'] = new Option(<nobr title="This takes you back to the main page">' .strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN. '?' .substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN) . '..' . $manufacturers['manufacturers_name'].'</nobr>, "http://localhost/standard/catalog/index.php?'.$manufacturers['manufacturers_id']. '&' .$http_get_vars['osCid'];
        $taeller = $taeller + 1;
       
      }
      echo "\n". 'writeSelectBox(topArray, "select2", 1, "window.open(this.options[this.selectedIndex].value, \'_top\')", "margin-left: 10; width: 140;");';
      echo "\n". '</script>';                                     
      echo "\n";                               
                                     
  //echo $manufacturers_array;
?>
</td>
</tr>

</table>
</td>
</tr>
</table>

</td>
</tr>
<!-- infobox_slut //-->

</body>
</html>
Avatar billede jakobdo Ekspert
25. oktober 2005 - 15:57 #1
Du skal jo fylde dit array op på en måde.
F.eks. var arr = new array();
arr[] = echo $row["felt"];
Avatar billede jakobdo Ekspert
25. oktober 2005 - 21:17 #2
Kan du evt vise hvordan du ville fylde lidt data i dit javascript array, hvis vi slet ikke snakker php, men ren javascript?
Avatar billede clauska Juniormester
26. oktober 2005 - 09:38 #3
Det forsøger jeg at gøre her men der bliver ikke vist noget i boksen.

echo "\n". 'topArray['.$taeller.'] = new Option(<nobr title="This takes you back to the main page">' .strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN. '?' .substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN) . '..' . $manufacturers['manufacturers_name'].'</nobr>, "http://localhost/standard/catalog/index.php?'.$manufacturers['manufacturers_id']. '&' .$http_get_vars['osCid'];
Avatar billede clauska Juniormester
26. oktober 2005 - 09:45 #4
Selve araayet er i javascript men det der skal fyldes i kommer fra databasen og bliver derfor hentet via PHP. Mit prob. er sådan set hvordan henter man fra databasen i PHP og ligger det i et array i JS.
Avatar billede jakobdo Ekspert
26. oktober 2005 - 09:47 #5
Prøv at vis mig hvordan du ville putte 1 eller 2 elementer i dit javascript array, helt uden at blande php ind i det.
Så kan jeg måske bedre forstå dit problem og hjælpe dig.
Avatar billede clauska Juniormester
26. oktober 2005 - 10:53 #6
Jeg har fundet ud af at få stoppet det ind i arrayet og kan se på view source i FF at det kommer der i, men jeg mangler at få osCid med.
osCid er en session id vil jeg tro hvordan kan man tilgå den i PHP

echo "\n". 'topArray['.$taeller.'] = new Option(<nobr>' .$manufacturers_name. '</nobr>, "http://localhost/standard/catalog/index.php?manufacturers_id='.$manufacturers['manufacturers_id']. '&osCid=' .$http_get_vars['osCid'];
Avatar billede jakobdo Ekspert
26. oktober 2005 - 10:58 #7
session tilgår du med: $_SESSION["osCid"]
Avatar billede jakobdo Ekspert
26. oktober 2005 - 11:07 #8
test lige denne: echo "\n" . "topArray[".$taeller."] = new Option(\"<nobr>" .$manufacturers_name. "</nobr>\", "http://localhost/standard/catalog/index.php?manufacturers_id=".$manufacturers["manufacturers_id"] . "&osCid=" .$SESSION["osCid"] . ");";
Avatar billede clauska Juniormester
26. oktober 2005 - 11:22 #9
Det virkede ikke men jeg fandt ud af at dette virkede.

echo "\n". 'topArray['.$taeller.'] = new Option(<nobr>' .$manufacturers_name. '</nobr>, "http://localhost/standard/catalog/index.php?manufacturers_id='.$manufacturers['manufacturers_id']. '&osCsid=' .tep_session_id();

Tak for hjælpen smid et svar så giver jeg dig 50% af pointene.
Avatar billede clauska Juniormester
26. oktober 2005 - 11:44 #10
Her er den komplette kode som virker som den skal

<html>
<head>
<link rel="STYLESHEET" type="text/css" href="classic.css">
<script type="text/javascript" src="fade.js"></script>
<script type="text/javascript" src="select.js"></script>
<script type="text/javascript" src="writeSelect.js"></script>
</head>
<body>
<!-- infobox_start //-->
<tr>
<td>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td height="14" class="infoBoxHeading"><BR></td>
<td width="100%" height="14" class="infoBoxHeading">&nbsp;Test Box</td>
<td height="14" class="infoBoxHeading" nowrap><BR></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="1" class="infoBox">
<tr>
<td><table border="0" width="100%" cellspacing="0" cellpadding="3" class="infoBoxContents">

<tr>
<td align="center" class="boxText">

<?php
  $manufacturers_query = tep_db_query("select manufacturers_id, manufacturers_name from " . TABLE_MANUFACTURERS . " order by manufacturers_name");
 
  $manufacturers_array = array();
      if (MAX_MANUFACTURERS_LIST < 2) {
        $manufacturers_array[] = array('id' => '', 'text' => PULL_DOWN_DEFAULT);
      }
      echo "\n". '<script>';
     
      echo "\n". 'topArray = new Array();';
      $taeller=0;
      while ($manufacturers = tep_db_fetch_array($manufacturers_query)) {
        $manufacturers_name = ((strlen($manufacturers['manufacturers_name']) > MAX_DISPLAY_MANUFACTURER_NAME_LEN) ? substr($manufacturers['manufacturers_name'], 0, MAX_DISPLAY_MANUFACTURER_NAME_LEN) . '..' : $manufacturers['manufacturers_name']);
        $manufacturers_array[] = array('id' => $manufacturers['manufacturers_id'],
                                              'text' => $manufacturers_name);
       
       

        echo "\n". 'topArray['.$taeller.'] = new Option(\'<nobr>' .$manufacturers_name. '</nobr>\', "http://localhost/standard/catalog/index.php?manufacturers_id='.$manufacturers['manufacturers_id']. '&osCsid=' .tep_session_id().'");';
        //echo "\n". 'topArray['.$taeller.'] = new Option()';
        $taeller = $taeller + 1;
       
      }
     
       
     
      echo "\n". 'writeSelectBox(topArray, "select2", 1, "window.open(this.options[this.selectedIndex].value, \'_top\')", "margin-left: 10; width: 140;");';
      echo "\n". '</script>';                                     
      echo "\n";                               
                                     
  //echo $manufacturers_array;
?>
</td>
</tr>

</table>
</td>
</tr>
</table>

</td>
</tr>
<!-- infobox_slut //-->

</body>
</html>
Avatar billede jakobdo Ekspert
26. oktober 2005 - 11:54 #11
Svar!
Avatar billede clauska Juniormester
26. oktober 2005 - 13:17 #12
cool
Avatar billede jakobdo Ekspert
26. oktober 2005 - 13:29 #13
Takker for point!
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