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).readyim()函数..为什么会这样?
  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 回答