在javascript中使用动态php变量
我有一个图像数据库和一个搜索表单,所以我想在下一页中显示图像,我必须使用javascript来显示(openlayer库) 我写了这段代码`在javascript中使用动态php变量,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,我有一个图像数据库和一个搜索表单,所以我想在下一页中显示图像,我必须使用javascript来显示(openlayer库) 我写了这段代码` <?php mysql_connect('localhost','root',""); mysql_select_db('geo-image'); $am=0 ; $sql="SELECT * FROM images WHERE satellite='".$_POST["satellite"]."'"; $result
<?php mysql_connect('localhost','root',"");
mysql_select_db('geo-image');
$am=0 ;
$sql="SELECT * FROM images WHERE satellite='".$_POST["satellite"]."'";
$result=mysql_query($sql)or die(mysql_error());
$count = mysql_num_rows($result);
for ($i=1; $i<=$count; $i++)
{
$rows = mysql_fetch_array($result);
${'a'.$i}=$rows['xpos'];
${'b'.$i}=$rows['ypos'];
${'c'.$i}=$rows['width'];
${'d'.$i}=$rows['height'];
${'e'.$i}=$rows['xoffset'];
${'f'.$i}=$rows['yoffset'];
${'g'.$i}=$rows['rotation'];
${'h'.$i}=$rows['resolution'];
${'i'.$i}=$rows['name'];
${'j'.$i}=$rows['url'];
}
?>
以及javascript代码:
var a1="<?php echo $a1?>";
var b1="<?php echo $b1?>";
var c1="<?php echo $c1?>";
var d1="<?php echo $d1?>";
var e1="<?php echo $e1?>";
var f1="<?php echo $f1?>";
var g1="<?php echo $g1?>";
var h1="<?php echo $h1?>";
var a2="<?php echo $a2?>";
var b2="<?php echo $b2?>";
var c2="<?php echo $c2?>";
var d2="<?php echo $d2?>";
var e2="<?php echo $e2?>";
var f2="<?php echo $f2?>";
var g2="<?php echo $g2?>";
var h2="<?php echo $h2?>";
var l1=340;
var l2=346;
if("<?php echo $count?>"==1){
anArray[anArray.length] = [ a1,b1, c1, d1, e1, f1, g1, h1,l1,"image/<?php echo $j1?>.jpg"];
} else if("<?php echo $count?>"==2){
anArray[anArray.length] = [ a1,b1, c1, d1, e1, f1, g1, h1,l1,"image/<?php echo $j1?>.jpg"];
anArray[anArray.length] = [ a2,b2, c2, d2, e2, f2, g2, h2,l2,"image/<?php echo $j2?>.jpg"];
} else if("<?php echo $count?>"==3){
anArray[anArray.length] = [ a1,b1, c1, d1, e1, f1, g1, h1,l1,"image/<?php echo $j1?>.jpg"];
anArray[anArray.length] = [ a2,b2, c2, d2, e2, f2, g2, h2,l2,"image/<?php echo $j2?>.jpg"];
anArray[anArray.length] = [ a3,b3, c3, d3, e3, f3, g3, h3,l3,"image/<?php echo $j3?>.jpg"];
}
var a1=”“;
var b1=“”;
var c1=“”;
var d1=“”;
var e1=“”;
var f1=“”;
var g1=“”;
var h1=“”;
var a2=“”;
var b2=“”;
var c2=“”;
var d2=“”;
var e2=“”;
var f2=“”;
var g2=“”;
var h2=“”;
var l1=340;
变量l2=346;
如果(“==1){
anArray[anArray.length]=[a1、b1、c1、d1、e1、f1、g1、h1、l1,“image/.jpg”];
}如果(“==2),则为else{
anArray[anArray.length]=[a1、b1、c1、d1、e1、f1、g1、h1、l1,“image/.jpg”];
anArray[anArray.length]=[a2、b2、c2、d2、e2、f2、g2、h2、l2,“image/.jpg”];
}否则,如果(“==3){
anArray[anArray.length]=[a1、b1、c1、d1、e1、f1、g1、h1、l1,“image/.jpg”];
anArray[anArray.length]=[a2、b2、c2、d2、e2、f2、g2、h2、l2,“image/.jpg”];
anArray[anArray.length]=[a3、b3、c3、d3、e3、f3、g3、h3、l3,“image/.jpg”];
}
在数据库搜索中,当我有两个结果时,这段代码正常工作,但当结果超过两个时,代码不工作,我知道问题是关于javascript中的变量,但我不知道如何解决它,有人能帮我解决吗???在我看来,php和js之间最安全的通信方式是使用json。此外,我建议您使用pdo或mysqli代替mysql与数据库进行通信。PHP:
<?php mysql_connect('localhost','root',"");
mysql_select_db('geo-image');
$ARR_DATA = array();
$sql="SELECT * FROM images WHERE satellite='".$_POST["satellite"]."'";
$result=mysql_query($sql)or die(mysql_error());
while($rows = mysql_fetch_array($result)
{
$arr_temp['a'] = $rows['xpos'];
$arr_temp['b'] = $rows['ypos'];
$arr_temp['c'] = $rows['width'];
$arr_temp['d'] = $rows['height'];
$arr_temp['e'] = $rows['xoffset'];
$arr_temp['f'] = $rows['yoffset'];
$arr_temp['g'] = $rows['rotation'];
$arr_temp['h'] = $rows['resolution'];
$arr_temp['i'] = $rows['name'];
$arr_temp['j'] = $rows['url'];
$ARR_DATA[] = $arr_temp;
}
$count = count($ARR_DATA);
?>
<script>
<?php
foreach($ARR_DATA as $key=>$arr_temp)
{
?>
var a = "<?php echo $arr_temp['a'];?>";
var b = "<?php echo $arr_temp['b'];?>";
var c = "<?php echo $arr_temp['c'];?>";
var d = "<?php echo $arr_temp['d'];?>";
var e = "<?php echo $arr_temp['e'];?>";
var f = "<?php echo $arr_temp['f'];?>";
var g = "<?php echo $arr_temp['g'];?>";
var h = "<?php echo $arr_temp['h'];?>";
var i = "<?php echo $arr_temp['i'];?>";
var j = "<?php echo $arr_temp['j'];?>";
var img = "image/"+j+".jpg";
anArray[<?php echo $key;?>] = [ a, b, c, d, e, f, g, h, i, j];
<?php
}
?>
</script>
JS:
<?php mysql_connect('localhost','root',"");
mysql_select_db('geo-image');
$ARR_DATA = array();
$sql="SELECT * FROM images WHERE satellite='".$_POST["satellite"]."'";
$result=mysql_query($sql)or die(mysql_error());
while($rows = mysql_fetch_array($result)
{
$arr_temp['a'] = $rows['xpos'];
$arr_temp['b'] = $rows['ypos'];
$arr_temp['c'] = $rows['width'];
$arr_temp['d'] = $rows['height'];
$arr_temp['e'] = $rows['xoffset'];
$arr_temp['f'] = $rows['yoffset'];
$arr_temp['g'] = $rows['rotation'];
$arr_temp['h'] = $rows['resolution'];
$arr_temp['i'] = $rows['name'];
$arr_temp['j'] = $rows['url'];
$ARR_DATA[] = $arr_temp;
}
$count = count($ARR_DATA);
?>
<script>
<?php
foreach($ARR_DATA as $key=>$arr_temp)
{
?>
var a = "<?php echo $arr_temp['a'];?>";
var b = "<?php echo $arr_temp['b'];?>";
var c = "<?php echo $arr_temp['c'];?>";
var d = "<?php echo $arr_temp['d'];?>";
var e = "<?php echo $arr_temp['e'];?>";
var f = "<?php echo $arr_temp['f'];?>";
var g = "<?php echo $arr_temp['g'];?>";
var h = "<?php echo $arr_temp['h'];?>";
var i = "<?php echo $arr_temp['i'];?>";
var j = "<?php echo $arr_temp['j'];?>";
var img = "image/"+j+".jpg";
anArray[<?php echo $key;?>] = [ a, b, c, d, e, f, g, h, i, j];
<?php
}
?>
</script>
var a=“”;
var b=“”;
var c=“”;
var d=“”;
var e=“”;
var f=“”;
var g=“”;
var h=“”;
var i=“”;
var j=“”;
var img=“image/”+j+”.jpg”;
a数组[]=[a,b,c,d,e,f,g,h,i,j];
试试看
在php代码中
<?php mysql_connect('localhost','root',"");
mysql_select_db('geo-image');
$am=0 ;
$sql="SELECT * FROM images WHERE satellite='".$_POST["satellite"]."'";
$result=mysql_query($sql)or die(mysql_error());
$count = mysql_num_rows($result);
$images = array();
for ($i=1; $i<=$count; $i++)
{
$rows = mysql_fetch_array($result);
$images[] = $rows;
}
?>
为什么不把$count
也放在js变量中呢?比如var count=“”代码>我这样做了,代码仍然不起作用请查看我的答案并尝试无需,OP可以将值存储在js
变量中