0

こんにちは、ここに私のコードがあります

echo('Name: <input type="text" id="Name" onchange="im()" value="your name"  name="Name" />');
echo('pointsize: <input type="text" id="pointsize" onchange="im()" value="50" name="pointsize" />');
echo('format: <input type="text" id="format" value=".gif" onchange="im()" name="format" />');
echo('BackGround Color: <input type="text" id="bckclr" value="red" onchange="im()" name="bckclr" />');
echo('FontColor: <input type="text" id="color" value="white" onchange="im()" name="color" />');
echo('Border Color: <input type="text" id="bcolor" value="blue" onchange="im()" name="bcolor" />');
echo('<a href="./lang/ims.php"><img src="'.$image.'" height="82" width="82" /></a>');
echo('Font: <input type="text" id="font" value="'.$image1.'" onchange="im()" name="font" />');

echo ('<div id="Div_Im">');
echo('replace me');
echo ('</div>');

これが私のAJAXコードです。

<Script type="text/javascript">
    function im()
    {
        var Name=document.getElementById("Name").value;
        var pointsize=document.getElementById("pointsize").value;
        var format=document.getElementById("format").value;
        var bckclr=document.getElementById("bckclr").value;
        var color=document.getElementById("color").value;
        var bcolor=document.getElementById("bcolor").value;
        var font=document.getElementById("font").value;
        $(document).ready(function(){
            var url='Name='+Name+'&pointsize='+pointsize+'&format='+format+'&bckclr='+bckclr+'&color='+color+'&bcolor='+bcolor+'&font='+font;
            alert(url);
            //-----Sending request to server for getting job name list by ajax-----
            $.ajax({
                type    : "POST",
                url : "i.php?",
                data    : url,              
                cache   : false,
                success : function(html)
                {
                    //document.getElementById('Div_PJobId').style.display="block";
                    //alert('hi');
                    alert(html);
                    var pic='<img src="'+html+'">';
                    $("#Div_Im").html(pic).show();
                }
            });
        });
     }
</script>

そして、これがi.phpのサーバーページコードです

$Name=$_POST["Name"];
$pointsize=$_POST["pointsize"];
$bckclr=$_POST["bckclr"];
$color=$_POST["color"];
$bcolor=$_POST["bcolor"];
$format=$_POST["format"];
//$filename = "./lang/sri".$format;
$filename = "./lang/".$Name.$format;
$font=$_POST["font"]; 

$cmd = " -background $bckclr -pointsize $pointsize -font $font -fill $color ".
            " -strokewidth 1 -stroke $bcolor label:\"$Name\" ";

exec("convert $cmd $filename");
//if($filename)
//{}
//echo('<img src="'.$filename.'">');
echo $filename;

デモリンクを確認してください。の内容 ( に示されている画像) は、名前を変更した場合にのみ置き換えられますが、色、bcolor、フォントでは機能しません...変更するたびにページを更新する必要があります....ありますか?この問題を解決する方法は?

4

2 に答える 2

0

私はあなたのコードをデバッグしていましたが、最新のデータでサーバーに呼び出し、サーバーから取得した html に基づいて画像を置き換えるたびに (入力で) すべての変更がクライアント側で正常に機能していることがわかりました。

サーバー側のコードに問題があると思います。私が見たように、名前フィールドの値を使用して、作成された画像ファイルに名前を割り当てています。名前が既に提供されているため、色の変更のために既に作成された名前の画像ファイルを意味します。サーバー側のコードを見る必要があります。応答がサーバーから返されるまでに無限の時間がかかる場合があります。

于 2012-09-21T10:54:44.067 に答える
0
  1. $(document).ready関数内に関数をラップしましたim()..それはなぜですか?
  2. 入力値を取得するために jQuery を使用しなかったのはなぜですか?

    function im() { 
    
    $.ajax({ 
       type: "POST", 
       url: "i.php?", 
       data: {
             Name:$('#Name').val(), 
             pointsize:$('#pointsize').val(),
             format:$('#format').val(),
             bckclr:$('#bckclr').val(),
             color:$('#color').val(),
             bcolor:$('#bcolor').val(),
             font:$('#font').val()   
       },               
       cache: false
    }).done(function(html) { 
    
            //document.getElementById('Div_PJobId').style.display="block"; 
            //alert('hi'); 
            alert(html); 
            var pic='<img src="'+html+'">'; 
            $("#Div_Im").html(pic).show(); 
    
    }); 
    }
    
于 2012-09-21T10:55:18.590 に答える