表单上的Php执行功能提交不起作用

时间:2017-02-23 08:39:06

标签: php

我已经得到了下面的代码,我想要它,所以我可以有一个我提交的输入框,然后它使用输入框作为生成的图像中的文本。

<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()。我按照教程来做到这一点,所以我不确定我哪里出错了。

2 个答案:

答案 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/htmlimage/png数据。您必须选择一个文件才能发送到浏览器。

如果要从表单提交中直接运行函数,则需要在浏览器中运行代码而不是服务器,在JavaScript中编写代码,并将函数绑定为event listener表单的submit事件。