2016-11-27 5 views
-1

내 웹 사이트의 새 계정에 대한 활성화 대기열에서 작업하고 있습니다. 시스템은 각 항목이 새로운 사용자의 계정 세부 사항을 포함하는 다른 배열로 배열을 통해 반복 한 다음 배열의 각 항목을 사용자에게 표시하여 관리자가 계정을 수락하거나 거부 할 수 있도록합니다. 배열에 대한 모든 정보를 PHP 파일로 수집했지만 첫 번째 계정 정보를 다시 자바 스크립트로 가져와 표시해야합니다. 현재 시도하고있는 코드는 작동하지 않지만 Chrome의 개발 콘솔이나 서버의 디렉토리에 오류가 표시되지 않습니다. 누군가가 내 코드를 통해 눈을 훑어보고 내 행운을 알면 너무 분명해 지거나 JSON을 완전히 이해하지 못해서 좋을 것입니다. 미리 감사드립니다.자바 스크립트로 JSON 배열 디코드

<?php 
session_start(); 

require "classes.php"; 
$TF = new TF_Core(); 

$ActQueueQuery = "SELECT username, surname, forename, joined FROM users 
WHERE rank = 'Unactivated'"; 

if ($statement = TF_Core::$MySQLi->DB->prepare($ActQueueQuery)) { 
    $statement->execute(); 
    $results = $statement->get_result(); 
} 

if($results->num_rows == 0){ 
    $data = 1; 
    echo $data; 
} 
else{ 
    $_SESSION["ActQueue"] = array(""); 

    while($row = $results->fetch_assoc()){ 
     array_push($_SESSION["ActQueue"], array($row["username"], $row["surname"], $row["forname"], $row["joined"])); 
    } 
    $data = 0; 
    echo json_encode(['Surname'=>'$_SESSION["ActQueue"][1][0]','Forename'=>'$_SESSION["ActQueue"][0][1]','Username'=>'$_SESSION["ActQueue"][0][2]','Joined'=>'$_SESSION["ActQueue"][0][3]']); 
} 
?> 

자바 스크립트 :

function ActQueueRefresh(){ 
     $.post('../functions/php/fncactqueuerefresh.php', {}, function(data) { 
      var returnValue = JSON.parse(data); 
      if (data == 0){ 
       $('#divQueueError').html(''); 
       $("#spnSurname").text(returnValue['Surname']); 
       $("#spnForename").text(returnValue['Forename']); 
       $("#spnUsername").text(returnValue['Username']); 
       $("#spnJoined").text(returnValue['Joined']); 
       $('#divQueueError').text(''); 
      } 
      else if (data == 1){ 
       $("#spnSurname").text(''); 
       $("#spnForename").text(''); 
       $("#spnUsername").text(''); 
       $("#spnJoined").text(''); 
       $('#divQueueError').html('<p class="text-center text-danger bg-danger" id="pUPInc">There are no accounts pending activation!</p>'); 
      } 
     }); 
    } 

http://thomas-smyth.co.uk/admin/activationqueue.php

+0

JavaScript는 어디에 있습니까? – Chris

+0

@Chris, 지금 내 게시물에 추가했습니다. –

답변

1

작동합니다 :

<?php 
session_start(); 

require "classes.php"; 
$TF = new TF_Core(); 

$ActQueueQuery = "SELECT username, surname, forename, joined FROM users 
WHERE rank = 'Unactivated'"; 

if ($statement = TF_Core::$MySQLi->DB->prepare($ActQueueQuery)) { 
    $statement->execute(); 
    $results = $statement->get_result(); 
} 

if($results->num_rows == 0){ 
    $data = 1; 
    echo $data; 
} 
else{ 
    $_SESSION["ActQueue"] = array(); 

    while($row = $results->fetch_assoc()){ 
     array_push($_SESSION["ActQueue"], array($row["username"], $row["surname"], $row["forename"], $row["joined"])); 
    } 
    $data = 0; 
    echo json_encode(['Surname'=>$_SESSION["ActQueue"][0][1],'Forename'=>$_SESSION["ActQueue"][0][2],'Username'=>$_SESSION["ActQueue"][0][0],'Joined'=>$_SESSION["ActQueue"][0][3]]); 
} 
?> 
+0

좋은 점. 나는 당신이 말한 것에 대해 행동했지만 여전히 효과가 없습니다. 더 이상의 제안? $ row [ "name"], $ row [ "surname"], $ row [ "forename"] 배열 ($ _ 세션 [ "ActQueue" ], $ row [ "joined"]))); } $ data = 0; \t echo json_encode ([ '사용자 이름'=> $ _ 세션 [ "ActQueue"] [0], [성] => $ _ SESSION [ "ActQueue"] [1], 'Forename'=> $ _SESSION [ "ActQueue"] [0] [2], '결합 됨'=> $ _ SESSION [ "ActQueue"] [0] [3]]); –

0
<?php 
session_start(); 

require "classes.php"; 
$TF = new TF_Core(); 

$ActQueueQuery = "SELECT username, surname, forename, joined FROM users 
WHERE rank = 'Unactivated'"; 

if ($results = TF_Core::$MySQLi->DB->query($ActQueueQuery)) { 
    if($results->num_rows == 0){ 
     $data = 1; 
     echo $data; 
    } 
    else{ 
     $_SESSION["ActQueue"] = array(); 

     while($row = $results->fetch_assoc()){ 
      array_push($_SESSION["ActQueue"], array($row["username"], $row["surname"], $row["forename"], $row["joined"])); 
     } 
     $data = 0; 
     echo json_encode(['Username'=>$_SESSION["ActQueue"][0][0], 'Surname'=>$_SESSION["ActQueue"][0][1],'Forename'=>$_SESSION["ActQueue"][0][2],'Joined'=>$_SESSION["ActQueue"][0][3]]); 
    } 
} 
?> 

(당신은 forName을하기 전에 뒤따라야()를 잘못 입력, 작은 따옴표로 변수를 둘러싸) Se ems는 이상한 엉뚱한 행동처럼 보이지만, 나는 독일 친구의 도움을 받아 그 일을하게되었습니다.