当用PHP创建未示出标签(<form> tag is not shown when cr

2019-10-18 01:44发布

我有这样的代码:

$html .='<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="hidden" id="input_clone_id" name="input_clone_id" value="'.$row['id'].'"/>
    <input type="hidden" id="input_clone_var" name="input_clone_var" value="V"/>
    <input type="file" name="uploaded_files[]" id="input_clone" multiple="multiple" /><br />
    <input type="submit" style="margin-left:0;float:left" value="Upload Files" />
</form>';
$html .='<a href="#" onclick="$.ajax({type: \'POST\',url: \'delete_pic.php\',data:{id:\''.$row['id_vila'].'\',var:\'V\',val:\''.$val.'\'},cache: false});window.location.reload( true );" style="background:url(\'images/icons/delete.png\') 50% -19px no-repeat;width:16px;height:16px;float:left;margin-left:10px;margin-top: 6px;"></a>';

一切除正确创建<form>标记。 它不显示。 我在做什么错在这里?

谢谢

编辑:

function formatImage2($col,$val,$row)
    {
        $html = '';
        $new = explode( ';', $val );

        for($j = 0; $j < count($new)-1; $j++) 
        {
            $html .= '<a target="_blank" href="../images/gallery/'.$new[$j].'"><img style="border: none;" src="../images/gallery/'.$new[$j].'" alt="'.$new[$j].'" width="100" /></a>';
        }
        $html .='<form enctype="multipart/form-data" action="upload.php" method="POST">
                        <input type="hidden" id="input_clone_id" name="input_clone_id" value="'.$row['id'].'"/>
                        <input type="hidden" id="input_clone_var" name="input_clone_var" value="V"/>
                        <input type="file" name="uploaded_files[]" id="input_clone" multiple="multiple" /><br />
                        <input type="submit" style="margin-left:0;float:left" value="Upload Files" />
                </form>';
        $html .='<a href="#" onclick="$.ajax({type: \'POST\',url: \'delete_pic.php\',data:{id:\''.$row['id_vila'].'\',var:\'V\',val:\''.$val.'\'},cache: false});window.location.reload( true );" style="background:url(\'images/icons/delete.png\') 50% -19px no-repeat;width:16px;height:16px;float:left;margin-left:10px;margin-top: 6px;"></a>';

        return $html;
    }

我使用这个格式从数据库中的图片。

OUTPUT:

<td>
                        <input type="hidden" id="input_clone_id" name="input_clone_id" value="9">
                        <input type="hidden" id="input_clone_var" name="input_clone_var" value="V">
                        <input type="file" name="uploaded_files[]" id="input_clone" multiple="multiple"><br>
                        <input type="submit" style="margin-left:0;float:left" value="Upload Files">

                <a href="#" onclick="$.ajax({type: 'POST',url: 'delete_pic.php',data:{id:'9',var:'V',val:''},cache: false});window.location.reload( true );" style="background:url('images/icons/delete.png') 50% -19px no-repeat;width:16px;height:16px;float:left;margin-left:10px;margin-top: 6px;"></a></td>

Answer 1:

这是通过具有嵌套在另一个形式造成的。 内部表单标签将不会被渲染,但表单内的任何HTML会。

你必须有某种形式的包装这一个在您的外线HTML。

<form id="outsideForm">
    <form id="insideForm">    
        <div>Inside Content</div>
    </form>
</form>

里面的表单元素消失- 演示

I 3小时前发布这个信息,但它是downvoted /删除,因为它是一个问题的形式。 我会张贴信息的评论,但我没有足够的信誉来这样做。 更好的解决方案可能会一直修改的,而不是完全删除我的答案。



Answer 2:

您的代码是好的。 每当你写的HTML代码,并尝试在PHP打印,然后一直使用PHP的预构建功能htmlentities()

喜欢:

echo htmlentities($html);

这个功能是用来识别PHP字符串的HTML代码和编码。 尝试这个。 这会为你工作。

使用它之前,你需要你的字符串中的HTML实体解码。 使用如:

$html .= html_entity_decode('<form enctype="multipart/form-data" action="upload.php" method="POST">');

这是一个例子。 你需要所有的字符串包含特殊字符逃跑的事。 这里是教程了这一点。

编辑:

 $html .= <<<HTML

    <form enctype="multipart/form-data" action="upload.php" method="POST">
                        <input type="hidden" id="input_clone_id" name="input_clone_id" value="'.$row['id'].'"/>
                        <input type="hidden" id="input_clone_var" name="input_clone_var" value="V"/>
                        <input type="file" name="uploaded_files[]" id="input_clone" multiple="multiple" /><br />
                        <input type="submit" style="margin-left:0;float:left" value="Upload Files" />
                </form>

HTML;

尝试这个。



文章来源:
tag is not shown when created with php