您好我想从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;
}
答案 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
}
});