2016-02-12 7 views
2

Я создал массив, используя php, передал его на JavaScript с использованием JSON_parse, пока что так хорошо.Переместить элемент массива в переменную в JavaScript

Проблемы в том, что теперь я должен извлечь столбец из этого массива JS и сохранить его в простой символьной переменной. Это, безусловно, должно быть в Javascript 101, но я не могу заставить его работать, и я не могу найти правильный синтаксис в любом месте.

currentVid = jArray[3]; для извлечения данных (здесь из третьей строки) не работает, и я немного теряю, как действовать.

Любой, кто может мне помочь? Поэтому мне нужен правильный синтаксис для копирования элемента массива (пусть, третья строка, первый элемент) переменной (char).

Вот код КСТАТИ:

<?php 

$videoList = []; 

$arrayNumber = 0; 

$servername = "localhost"; 
$username = "PPAUser"; 
$password = "password"; 
$dbname  = "PPADB"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT video_link FROM videolinks"; 

$result = $conn->query($sql); 

if ($result->num_rows > 0) { 

// output data of each row into internal array 

    while($row = $result->fetch_assoc()) { 
     $videoList[$row['cat']][] = array( 
     'video_link' => $row['video_link']); 
     } 
    } 

$conn->close(); 

?> 

<script> 
    function setVideoPrev() { 

    var currentVid = document.getElementById("iFrame").src; 

    var jArray = JSON.parse('<?php echo json_encode($videoList); ?>'); 

    currentVid = jArray["video_link", 3]; 

    document.getElementById("iFrame").src = currentVid; 
} 
</script> 

Линия currentVid = jArray["video_link", 3]; не делает трюк, но я пытался много много вещей.

ответ

0

EDITED. На основании комментариев ответ был прав.

Похоже, что это должно быть jArray[YOUR_CATEGORY][0].video_link. YOUR_CATEGORY это что в $row['cat']

+0

Спасибо, но я получаю «не могу прочитать свойство '3' неопределенных ... Что странно, потому что в отладчике я вижу: jArray: Object "": Array [4] 0: Объект 1 : Объект 2: Объект 3: Объект Длина: 4 __proto__: Array [0] __proto__: Объект –

+0

выглядит так, будто у вас массив массивов. попробуйте получить доступ к 'jArray [0]' first и 'console.log (jArray [0])' it. –

+0

Это заставляет меня: неопределенными index.php: 21 Uncaught TypeError: Не удается прочитать свойство '3' undefinedsetVideoPrev @ index.php: 21onclick @ index.php: 165 –

0

Это недопустимый синтаксис для доступа к массивам. Попробуйте сделать что-то вроде этого: currentVid = jArray["video_link"][3]. Если вы не знаете, как выглядят ваши данные, просто распечатайте его на консоли.

Смежные вопросы