2013-03-27 2 views
0

Я хочу получить набор массивов от PHP до ajax. Код, который у меня есть, ничего не возвращает, может кто-нибудь мне помочь, как получить значение от PHP до ajax. Если я не создам массив в mysql_fetch, он будет извлекать последнее значение из базы данных и передавать его функции ajax. Я хочу получить все ценности. Как я могу это сделать?Получить массив от PHP до AJAX

АЯКС КОД:

<script> 
    //Global Variables 
    var channel; 
function overall(){ 
    $(".one").show(); 
    $(".two").hide(); 
    $(".three").hide(); 
    $(".four").hide(); 
    window['channel']="overall"; 
    $.ajax({ 
      type:"GET", 
      url:"dash2.php", 
      data:{channel:channel}, 
      dataType:'json', 
      success:function(data){ 
        console.log(data.a); 
        console.log(data.b); 
        console.log(data.c); 
        } 
      }); 
    } 
</script> 

PHP КОД:

<?php 
    error_reporting(0); 
    $channel=$_GET['channel']; 
    $host="192.168.0.29"; 
    $username="root"; 
    $password="root"; 
    $dbname="realcl"; 
    mysql_connect($host,$username,$password) 
    OR DIE ('Unable to connect to database! Please try again later.'); 
    mysql_select_db($dbname); 
    $query = 'select * from '.$channel; 
    $masterresult = mysql_query($query); 
    $success[]; 
    $timeout[]; 
    $fail[]; 

    while($row1 = mysql_fetch_array($masterresult)) 
    { 
     $success[]=$row1[1]; 
     $timeout[]=$row1[2]; 
     $fail[]=$row1[3]; 
    } 

    echo json_encode(array("a"=>$success,"b"=>$timeout,"c"=>$fail)); 
?> 
+1

@undefined Это точный дубликат –

+0

Этот вопрос касается использования массива в ajax, не разрешающем проблему типа –

+0

Что происходит, когда кто-то вводит 'channel' как' dual where 0; drop database realcl; - ' –

ответ

0

Это приведет к фатальной ошибке (и из-за этого, недействительный ... JSON):

$success[]; 
$timeout[]; 
$fail[]; 

Возможно, вы хотите:

$success = array(); 
// etc. 

И у вас есть огромная проблема с sql injection, вы должны проверить свое имя таблицы на белый список разрешенных имен таблиц. Вы также должны переключиться на PDO (или mysqli), поскольку функции mysql_* устарели.

+0

iknow, это даст мне ошибку :(не могли бы вы помочь мне изменить ajax, чтобы получить несколько значений? –

+0

@jibindcruz Просто измените его, как я указал в своем ответе. – jeroen

+0

см. это для правой части php ? Как я могу изменить его для ajax? –

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