2012-02-03 13 views
0

我想在一段代碼中嵌入一個變量,我用php寫入一個文本區域,因此可以很容易地將其選中並複製到另一個網站。在生產中,變量將從SESSION變量中提取,但是如果您想通過粘貼到頁面上來嘗試此操作,我已經硬連接變量值。

問題是php函數沒有提取變量。我已經用寫入頁面前存在的SESSION變量對它進行了嘗試 - 沒有去。我也嘗試將變量加載到頁面上的表單中,並通過$ _POST獲取它們...不行。 我在這裏做錯了什麼?

<?php session_start(); 
$fkey ="46"; 
$bleft = "0.86543"; 
$bpos = "tp"; 
$bcolor = "#eb9494"; 
$blabel = "CALL US"; 
echo "fkey: " . $fkey . "<br/>" ; 
echo "bleft: " .$bleft . "<br/>" ; 
echo "bpos: " .$bpos . "<br/>" ; 
echo "bcolor: " .$bcolor . "<br/>" ; 
echo "blabel: " .$blabel . "<br/>" ; 


     $updateGoTo = null; 
    switch ($thepos) { 
    case "tp": 
    $updateGoTo = "slideouttesttopDATA.php"; 
    build_HTMLtp(); 
    break;  
case "bt": 
     $updateGoTo ="slideouttestbtmDATA.php"; 
     build_HTMLbt(); 
     break; 
    case "lt": 
      $updateGoTo = "slideouttestltDATA.php"; 
     build_HTMLlt(); 
    break; 
case "rt": 
     $updateGoTo = "slideouttestrtDATA.php"; 
     build_HTMLrt(); 
    break; 
    } 

    ?> 
<html> 
<body> 
    <form action="myform" method="post" enctype="application/x-www-form-urlencoded"> 

<?php 

function build_HTMLtp() { 

    $myfield="&lt;style&gt;\n"; 
    //style blocks 
    $myfield.= 
"#slideouttop:{ 
    position:absolute; 
    width:190px;height:187px; 
    top:-238px; 
    left:50%%; 
} 

.bizzopop,.bizzopopbtm{ 
    background:url(http://dev.bizzocall.com/images/bcpopupwtrans.png); 
    background-repeat:no-repeat; 
    height:auto; 
    width:201px; 
    overflow:visible; 
    min-height:237px; 
} 
#clickmetop,#clickmebtm { 
    float:left; 
    clear:left; 
    height:20px; 
    width:80px; 
} 
#bcbuttontop,#bcbuttonbtm{ 
    background-color:#000000; 
    position:relative; 
    cursor:pointer; 
    float:left; 
    clear:left; 
    left:0; 
    height:30px; 
    width:140px; 
    overflow:hidden; 
} 
.bcsquarebtntop,.bcsquarebtnbtm{ 
    position:relative; 
    background-color:#000000; 
    float:left; 
    clear:left; 
    border:#ffFFFF; 
    width:15px; 
    height:15px; 
    border-width:2px; 
    border-style:solid; 
    left:6px; 
    top:5px; 
} 

.innersquarebtn{ 
    background-color:#ffffff; 
    width:3px; 
    height:3px; 
    margin:auto; 
    margin-top:6px; 
    position:relative; 
} 

.btnlabeltxttop{ 
    cursor:pointer; 
    display:inline; 
    overflow:visible; 
    height:40px; 
    width:100%%; 
    text-align:left; 
    text-indent:0; 
    left:0px; 
    position:relative; 
    float:left; 
    font-size:17px; 
    font-weight:bold; 
    color:#00FFFF; 
    top:-23px; 
    margin-left:32px; 
}\n"; 
//special handling for variables 
$myfield.=".bizzopop {background-color:" . $bcolor . ";}\n"; 

$myfield.=".btnlabeltxttop {color:". $bcolor .";}\n"; 

$myfield.="#slideouttop { 
    left:". 100*($bleft) ."%%; 
    display:". $tp ."; 
} 

    #clickmetop { 
    position:relative; 
    float:left; 
    clear:left; 
    height:20px; 
    width:80px; 
    z-index:1000; 
} 
&lt;/style&gt;\n\n"; 
//now the html 
$myfield.= "<div id=\"slideouttop\"> 
<div class=\"bizzopop\"> 
</div> 
<div id=\"clickmetop\"> 
<div id=\"bcbuttontop\"> 
    <div class=\"bcsquarebtntop\"> 
    <div class=\"innersquarebtn\"></div> 
    </div> 
    </div> 
    <div class=\"btnlabeltxttop\">". $blabel ."</div> 
</div> 
</div>\n\n"; 
//jquery handlers 
$myfield.="<script src=" . "\"http://" . "code.jquery.com/jquery-latest.js\">  </script>\"\n 
$(function() {\n 
    $(\'#clickmetop\).toggle(function() {\n 
     $(this).parent().animate({marginTop:\'187px\'}, {queue:false, duration:  500});\n 
    }, function() {\n 
     $(this).parent().animate({marginTop:\'0px\'}, {queue:false, duration:  500});\n 
    });\n 
});\n 
</script> 
"; 

    printf ($myfield); 

} 

?> 

<textarea name="myfield" cols="100" rows="30"><?php build_HTMLtp();?> 
</textarea> 
</form> 
+0

您是否在談論build_HTMLbt()無法訪問像$ blabel這樣的變量? – 2012-02-03 00:13:04

+1

因此,您需要使用PHP,這是一種可以無縫穿插HTML的語言,然後您可以在代碼之前構建HTML(帶有許多轉義字符)字符串,然後將其打印出來? – Borealid 2012-02-03 00:19:31

+0

我正在編寫一段代碼,其中包含剛剛在控制面板上選擇的顏色,標籤和位置信息。我使用這個來構建CSS代碼片段,它包含所有選定的值。然後將其複製並粘貼到客戶的網站中,爲他們提供定製的滑出按鈕,而無需知道如何編寫代碼。大多數網絡主機不允許您包含來自其他域的網頁,這一直是一個棘手的問題。只有這樣,我才能夠在不使用Flash的情況下完成此操作。 – 2012-02-03 00:59:43

回答

3

全局變量是不可訪問的內部功能,除非你使用全球或通過$ GLOBALS - 陣列訪問它們。

+1

「使用全局」意味着像'global $ bleft;'在想要使用全局的函數的頂部,如果不清楚的話。 – cHao 2012-02-03 00:15:49

+1

就在!當你編寫一個函數時,只需創建你的函數所需的參數。 – 2012-02-03 00:16:35

+0

哇......我不知道這個...... – 2012-02-03 01:00:09