Получить все значения из MySQL, а затем сделать переменные - PullRequest
0 голосов
/ 29 декабря 2010

Привет, я хочу получить значения из файлов PHP и сделать их пригодными для использования как массив. Я использую JQuery. Как мне отформатировать ретривер и php файл, чтобы получить их все.

PHP-файл: я использовал switch для получения 1 за раз, но этот метод отстой

<?php
 ob_start();
 session_start();
 include('mysql_config.php');

 $konto = $_SESSION['login'];
 $temp=mysql_fetch_array(mysql_query("SELECT `curchar` FROM `users` WHERE `login`='$konto'"));
 $id = $temp['curchar'];
 $gracz=mysql_fetch_array(mysql_query("SELECT * FROM `chars` WHERE `id`='$id'"));
 $gracz['max_pz']=94+($gracz['str']+$gracz['stm']*5);
 $gracz['max_pe']=7.1-($gracz['str']*0.1)+$gracz['stm']+$gracz['int']*2;
 $gracz['max_exp']=($gracz['lvl']*10)*25;
 if ($gracz['max_exp'] <= $gracz['exp']) 
 {
  $gracz['lvl']++;
  $zostalo = $gracz['exp']-$gracz['max_exp'];
  mysql_query("UPDATE `chars` SET lvl=lvl+1, stats=stats+3, exp='$zostalo' WHERE `id`='$id'");
  $gracz['exp']=$zostalo;
  $gracz['max_exp']=($gracz['lvl']*10)*25;
 }
 $lol=$_POST['name'];

 switch ($lol) {
    case 'pz':
   echo $gracz['pz'];
  break;
  case 'max_pz':
   echo $gracz['max_pz'];
  break;
  case 'pe':
   echo $gracz['pe'];
  break;
  case 'max_pe':
   echo $gracz['max_pe'];
  break;
  case 'max_exp':
   echo $gracz['max_exp'];
  break;
  case 'str':
   echo $gracz['str'];
  break;
  case 'dex':
   echo $gracz['dex'];
  break;
  case 'int':
   echo $gracz['int'];
  break;
  case 'stm':
   echo $gracz['stm'];
  break;
  case 'stats':
   echo $gracz['stats'];
  break;
  case 'exp':
   echo $gracz['exp'];
  break;
  case 'lvl':
   echo $gracz['lvl'];
  break;
  case 'mapa':
   echo $gracz['mapa'];
  break;
  case 'x':
   echo $gracz['x'];
  break;
  case 'y':
   echo $gracz['y'];
  break;
  default:
   echo "post jest pusty";
  break; 
 }
 ob_end_flush();
?>

JS файл (ретривер): вот ретривер, чтобы получить 1 переменную, но он использует синхронизацию, которая вызывает зависание браузера, я не хочу его

function get_char_val(merk)
{  
 var returnValue = null;
 $.ajax({   
    type:   "POST",
    async:  false,   
    url:    "char_info2.php",   
    data:  { name: merk },   
    dataType: "html",  
    success:  function(data)
         {
          returnValue = data;
         } 
  }); 
 return returnValue;
}

1 Ответ

1 голос
/ 29 декабря 2010

Используйте JSON. В вашем PHP-файле просто выведите:

echo json_encode($gracz);

И измените ваш обработчик ajax, чтобы принимать данные JSON:

$.ajax({   
    type:   "POST",
    async:  false,   
    url:    "char_info2.php",   
    data:  { name: merk },   
    dataType: "json",  
    success:  function(data) {
        // Use data.max_pz or whatever here
    } 
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...