我的jquery代码连接到getdata.php
。这里val
是动态值,每次从下拉列表中选择一个选项时都会调用该函数。
function getMoleculeData(val){
var molval=val;
var url = 'getmoldata.php';
$.ajax({
url: url,
data: 'molval='+molval,
method:'POST',
success: function(moldata) {
alert(moldata);
}
});
}
我的getdata.php
代码在这里
<?php
$molval = $_POST['molval']; // consider $_POST['molval']=ABC
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname= "userdata";
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname) or die ();
$query = "SELECT cm_id, CORP_RANK, CORP_MKT_SHARE, COMBINED_MOLECULE FROM PRODUCT_UNIVERSE_D WHERE COMBINED_MOLECULE ="."'$molval'";
$result = mysql_query($query) or die(mysql_error());
$i = 1;
$array = array();
while($row = mysql_fetch_array($result) {
$array[] = $row;
echo $row['CORP_RANK']; // etc
}
?>
这是我的表PRODUCT_UNIVERSE_D
cmid | CORP_RANK | CORP_MKT_SHARE | COMBINED_MOLECULE | DATE
1 | 10 | 30 | ABC | 01-04-2013
2 | 5 | 50 | ABC | 03-06-2013
3 | 8 | 40 | ABC | 23-09-2013
4 | 3 | 10 | XYZ | 05-01-2014
当我在下拉列表中选择ABC时,在where子句中给出相同的值,我可以获取结果。对于用getdata.php
写的上述代码,我得到的输出是1058
,即CORP_RANK的值,其中COMBINED_MOLECULE ='ABC'。但要求是我必须以[10,5,8]
的形式得到结果。如何以此数组格式获取结果,以及如何单独获取所有列,如$ row ['CORP_MKT_SHARE'] = [10,50,40]
,并在index.php
的成功函数中单独显示为
[10,5,8] and [10,50,40] for furthur use
请帮帮我,因为我在数组的基础知识方面并不完美,我无法得到结果。提前致谢
答案 0 :(得分:1)
如果您的目标是将数据输出为json格式。
example:
$array = array(1,2,3);
var_dump(json_encode($array));
你会得到这个输出:
string(7) "[1,2,3]"
最好改变你的循环:
for($array = array();$row = mysql_fetch_array($result);$array[] = $row);
json_encode($array);
当你想使用ajax从php文件中检索数据时,这是最好的方法。
使用您的代码:
while($row = mysql_fetch_array($result)) {
$rank[] = $row['CORP_RANK'];
$share[] = $row['CORP_MKT_SHARE'];
}
$array = array('CORP_RANK'=>$rank,'CORP_MKT_SHARE'=>$share);
json_encode($array);
希望这有帮助。