Bitte geben Sie Hilfe zum Zuweisen von PHP-Array-Werten zum Javascript-Array

----------- Mit dem folgenden PHP-Code speichere ich Daten im PHP-Array -----------

<?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++;
}
?> 

----- Mit dem folgenden Javascript-Code versuche ich, PHP-Array-Daten in Javascript-Array zu speichern -----

Bitte lassen Sie mich wissen, was und wie Variablen an den unten genannten 2 Stellen geschrieben werden sollen, damit mein Code funktioniert.

<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>

Vielen Dank im Voraus, KRA

16
KRA 10 Okt. 2012 im 10:52

5 Antworten

Beste Antwort

Sie können so nicht schleifen, Sie müssen das PHP-Array und push in ein Javascript-Array schleifen:

<script type="text/javascript" language="javascript">
    var pausecontent = new Array();
    <?php foreach($schd_arr as $key => $val){ ?>
        pausecontent.push('<?php echo $val; ?>');
    <?php } ?>
</script>
44
Mihai Iorga 10 Okt. 2012 im 06:57

Ich hatte das gleiche Problem dabei, fand aber schließlich die beste Lösung

    <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>
1
Ravi Kumar Yadav 6 Jän. 2018 im 17:11

Ich denke, Sie sollten das Array am besten zuerst in Ihr Javascript aufnehmen. Das wäre ungefähr so:

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

Danach ist es ein normales js-Array, sodass Sie Eigenschaften wie .length verwenden können, die die Schleife vermutlich viel einfacher machen.

3
11684 10 Okt. 2012 im 07:04

Sie können die Funktion json_encode direkt verwenden. Es ist einfach zu bedienen und erzeugt gültiges Javascript, ist also sehr stabil:

<script type="text/javascript">
    var pausecontent = <?php echo json_encode($php_array); ?>;
</script>
54
hakre 10 Okt. 2012 im 16:37

Über beiden Antworten gut.

  1. Durchlaufen Sie das Array, das Sie als Ergebnis Ihrer DB-Abfrage erhalten haben, und fügen Sie jeden Wert einer neuen PHP-Variablen hinzu.
  2. Fügen Sie einen Zähler hinzu und erhöhen Sie ihn bei jeder Iteration, um sicherzustellen, dass Sie nach dem letzten Element kein Komma hinzufügen.
  3. Wenn die Anzahl der Elemente im Array mehr als 1 beträgt, erstellen Sie das Array wie gewohnt, andernfalls erstellen Sie ein neues Array mit 1 Element und weisen Sie Ihren PHP-Array-Wert dem Index 0 zu.
0
Sébastien 13 Dez. 2017 im 14:41