2012-10-10 26 views
10

Należy zapewnić pomoc w jaki sposób przypisać wartości tablicy PHP do JavaScript tablicyjak przypisać wartości tablicy PHP do JavaScript tablicy

----------- pomocą poniższego kodu php Jestem przechowywania danych w PHP tablica -----------

<?php 
$str_query="SELECT title,description FROM tablename ORDER BY title"; 
$rs_sch=GetRecordset($str_query); 

$int_count=0; 
$schd_arr = array(); 
while(!$rs_sch->EOF()) 
{ 
$schd_arr[$int_count] = $rs_sch->Fields("title").": ".$rs_sch->Fields("description"); 
$rs_sch->MoveNext(); 
$int_count++; 
} 
?> 

----- Korzystanie poniżej kodu javascript usiłuję do przechowywania danych tablicy w php javascript tablicy -----

Proszę pozwolić wiem, jak i jak napisać zmienną w 2 wymienionych miejscach, aby mój kod mógł działać.

<script type="text/javascript" language="javascript"> 
var pausecontent=new Array() 
for (sch_cnt=0; sch_cnt<*Here I want to assign value of $int_count php variable*; sch_cnt++) 
{ 
pausecontent[sch_cnt]=<?php *Here I want to assign php array and counter values (something like this - $schd_arr[sch_cnt];)* ?>; 
} 
</script> 

Dziękuję z góry, Kra

+1

Jeśli skrypt znajdujący się w tym samym pliku jako kodu źródłowego php, upewnij się, że kod jest wykonywany, a dopiero potem można tylko odwoływać się do niej. W przeciwnym razie proszę dodać trochę informacji o tym, co próbujesz zrobić. – nijansen

Odpowiedz

30

Nie można pętli tak, trzeba pętli tablicę PHP i push do tablicy javascript:

<script type="text/javascript" language="javascript"> 
    var pausecontent = new Array(); 
    <?php foreach($schd_arr as $key => $val){ ?> 
     pausecontent.push('<?php echo $val; ?>'); 
    <?php } ?> 
</script> 
+0

Dziękuję bardzo, to działa dla mnie. – KRA

+0

@hakre answer jest bardziej preferowany niż wybrany –

-1

Można po prostu zrobić tak z obu:

for (sch_cnt=0; sch_cnt<?php echo $int_count; ?>; sch_cnt++) 
32

Możesz bezpośrednio użyć json_encode Funkcja. Jest łatwy w użyciu i tworzy prawidłowy javascript więc jest bardzo stabilny:

<script type="text/javascript"> 
    var pausecontent = <?php echo json_encode($php_array); ?>; 
</script> 
+1

Zwłaszcza, że ​​to wypisze prawidłowy javascript. O wiele bardziej korzystne. – hakre

2

myślę, że ty najlepiej uzyskać tablicę do JavaScript pierwszy. To byłoby coś takiego:

var theVariableYouWantTheArrayIn = <?php echo json_encode($theArrayYouWantInJavascript); ?> 

Po, że jest to normalne js array, dzięki czemu można korzystać z właściwości, takie jak .length które prawdopodobnie sprawiają, że pętla jest znacznie łatwiejsze.

0

Powyżej obie odpowiedzi w dobrym.

  1. iterację tablicy dostałeś w wyniku zapytania DB i dodać każdą wartość do nowej zmiennej PHP,
  2. Dodaj licznik i zwiększyć ją podczas każdej iteracji, aby upewnić się, że nie dodajemy przecinek po ostatnim elemencie,
  3. Jeśli liczba elementów w tablicy jest większa niż 1, utwórz tablicę jak zwykle, w przeciwnym razie utwórz nową tablicę z 1 elementem i przypisz wartość tablicy PHP do indeksu 0.
0

Miałem takie samo Problem robi to jednak w końcu znaleźć najlepsze rozwiązanie

<script>  
    var arr=[]; 
    arr.push('<?php 
      include('conn.php'); 
     $query = "SELECT *FROM c group by name"; 
     $res = mysqli_query($conn,$query) or die(mysqli_error($conn)); 

     while($data = mysqli_fetch_array($res)) 
     { 


      echo $data["name"]; 
     } 
      ?>'); 
     </script> 
Powiązane problemy