首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将<input name="city“type="text”/>动态替换为$_POST['city']

将<input name="city“type="text”/>动态替换为$_POST['city']
EN

Stack Overflow用户
提问于 2013-06-18 23:24:01
回答 1查看 1.7K关注 0票数 0

我已经花了两天时间研究如何做到这一点。我有这个表格:

代码语言:javascript
复制
<form action="preview.php" method="post">
In the city of <input name="city" type="text" /> at <input name="days" type="text" /> days of <input name="month" type="text" /> gathered the following people: <input name="name1" type="text" /> and <input name="name2" type="text" /> with the objective of...

<button type="submit">Preview</button></form>

preview.php应该是这样的:

代码语言:javascript
复制
In the city of <?php echo $_POST['city'];?> at <?php echo $_POST['days'];?> days of <?php echo $_POST['month'];?> gathered the following people: <?php echo $_POST['name1'];?> and <?php echo $_POST['name2'];?> with the objective of...

问题是表单是通过CMS创建的,所以我没有办法知道输入的名称是什么。有没有办法从根本上用<?php echo $_POST['city'];?>取代<input name="city" type="text" />呢?我有一些想法,但由于我是PHP新手,我不知道如何实现它们。

也许preg_replace可以做到这一点,但我不知道如何防止输入的名称更改。或者我可以使用一个数组,例如<input name="data[]" type="text" />和类似的东西:

代码语言:javascript
复制
for($i=0;"";$i++){

if( isset( $_POST["data{$i}"] )) {

$string = $form;
$patterns = '<input name="data[]" type="text" />';
$replacement = $_POST["data{$i};
preg_replace($patterns, $replacements, $string);

}

}

我真的迷路了,如果有人能帮我一下,我将不胜感激。

附言:我不是一个以英语为母语的孩子,如果我弄错了,我很抱歉。

更新:用户可以在CMS中制作不同的表单,这些表单将保存在数据库中。然后他可以选择他想要填充的那个。一旦他填写了它,他可以预览它,并将其保存为pdf。preview.php在表单中将具有相同的文本,但它将具有用户输入的值,而不是输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-18 23:41:50

(我对PHP有点陌生。)

使用ob_函数(输出缓冲区)捕获表单的超文本标记语言。

代码语言:javascript
复制
if ($_SERVER['REQUEST_METHOD'] == 'POST' {

    ob_start();

    ... the CMS outputs HTML

    ob_end_flush();
    $s = ob_get_contents();

使用name属性替换内容

代码语言:javascript
复制
    function postText($matches) {
       return $_POST[$matches[1]];
    }

    $s = preg_replace_callback('/<[^>]* name="([^">]+)"[^>]*>/',
        "postText",
        $s);
    echo $s;

它使用一个函数将HTML标记替换为name属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17172795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档