我已经得到了下面的代码,我想要它,所以我可以有一个我提交的输入框,然后它使用输入框作为生成的图像中的文本。
<form id="MyForm" method="post" action="process()">
<input>
<input type="submit">
</form>
<?php
function process()
{
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );
/* New image */
$image->newImage(800, 75, $pixel);
/* Black text */
$draw->setFillColor('black');
/* Font properties */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );
/* Create text */
$image->annotateImage($draw, 10, 45, 0,
'The quick brown fox jumps over the lazy dog');
/* Give image a format */
$image->setImageFormat('png');
/* Output the image with headers */
header('Content-type: image/png');
echo $image;
}
?>
当我尝试使用此代码时,表示找不到文件www.site.com/process()。我按照教程来做到这一点,所以我不确定我哪里出错了。
答案 0 :(得分:2)
您可以通过向其中一个表单控件添加名称来执行此操作,然后检查以便在表单提交时设置此值:
<!-- submit the form to the same page -->
<form id="MyForm" method="post" action="/">
<input type="submit" name="submit">
</form>
// check if the form is set in the $_POST array
if (isset($_POST['submit'])) {
process();
}
答案 1 :(得分:1)
action
属性的值必须是网址。
该URL可以由PHP脚本处理。该PHP脚本可以运行一个函数。
您可以为该URL的任何请求运行该函数,或使用if
语句检查表单提交的数据(此刻,没有数据,因此您必须将一些数据放入形式第一)并有条件地调用函数。
NB 您的PHP脚本无法同时输出text/html
和image/png
数据。您必须选择一个文件才能发送到浏览器。
如果要从表单提交中直接运行函数,则需要在浏览器中运行代码而不是服务器,在JavaScript中编写代码,并将函数绑定为event listener表单的submit
事件。