Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中使用动态php变量_Javascript_Php_Jquery_Mysql - Fatal编程技术网

在javascript中使用动态php变量

在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

我有一个图像数据库和一个搜索表单,所以我想在下一页中显示图像,我必须使用javascript来显示(openlayer库) 我写了这段代码`

<?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
变量中