簡體   English   中英

提交表單后如何加載頁面內容?

[英]How to load the contents of a page when a Form is submitted?

我有一個使用ImageMagick來構建基於文本的簡單圖像的簡單PHP腳本。 除了保存圖像,我現在只需要在屏幕上顯示它即可。

所以我有一個PHP文件來構建圖像,並使用此文件將其打印到屏幕上。

/* Create image */
$image->newImage($metrics['textWidth'], $metrics['textHeight'], $background);
$image->setImageFormat('png');
$image->drawImage($draw);

/* Show image */
header('Content-type: image/png');
echo $image;

要查看圖像並更改其外觀,我將URL格式設置如下。

http://my-domain.com/magick-test.php?font=&fontsize=100&fontcolor=ffffff&bgcolor=000000

現在我需要一些幫助。 我正在創建第二個PHP文件,該文件將具有HTML Form trhat,這將允許我更改圖像的變量。 我想提交表單,然后在同一頁面上顯示圖像。 我相信我可以使用JavaScript甚至AJAX做到這一點。

有人可以給我展示一個基本的示例,如何提交我的表單,並讓它顯示在預覽DIV的同一屏幕上創建的圖像嗎? 我也可以使用jQuery。

我的HTML表單將是這樣的...

<form action="magic-text.php">
Text: <input type="text" name="text" size="100"><br>
Font: <select name="font">
  <option value="angelica-webfont.ttf">Angelica</option>
  <option value="angelica-webfont.ttf">Angelica</option>
  <option value="angelica-webfont.ttf">Angelica</option>
</select><br>
Font Size: <select name="fontsize">
<option value="11">Font Size</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
</select><br>
Font Color <select name="fontcolor">
  <option value="#FF0000">Red</option>
  <option value="#FF5000">Orange</option>
  <option value="#FFF200">Yellow</option>
</select><br>
<input type="submit" class="btn" style="display: inline-block;">
</form>

因此,您可以執行以下操作:

$(".btn").click(function(e){
     e.preventDefault();
     $("<img />").attr("src","http://my-domain.com/magick-test.php?"+$("form").serialize).appendTo("#target_element");
});

目標元素是您要顯示圖像的位置。

添加第二個html元素

<img src="" id="myimg" />

然后使用jQuery並接受FORM元素並對其進行ajaxSubmit ...

$(function() {
    $("form").submit(function(ev) {
        $("#myimg").attr("src", "http://..." + $(this).serialize());
        ev.preventDefault();
        return false;
    });
});
$(".btn").click(function(e){
   e.preventDefault(); 
   var request = $.ajax({ url : "http://my-domain.com/magick-test.php", type : 'POST', dataType : 'json', data : $('#myform').serializeArray() });

    request.done(function(json) { 
       if (json.status == 'ERROR') {
        return false; 
       } 
       $('#preview').innerHML = json.image; 
       return true;
    });
   request.fail(function() { 
      return false;
   }); 
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM