从mysql获取所有值然后生成变量

时间:2010-12-29 15:45:23

标签: php javascript jquery mysql ajax

您好我想从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 个答案:

答案 0 :(得分:1)

使用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
    } 
});