1

私はこのコードを持っています:

$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;
    }

これを使用して、データベースから画像をフォーマットしています。

出力:

<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>
4

2 に答える 2

3

これは、あるフォームが別のフォームにネストされていることが原因です。内側のフォーム タグはレンダリングされませんが、そのフォーム内の HTML はレンダリングされます。

これを外側の HTML にラップする何らかのフォームが必要です。

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

内部のフォーム要素が消える - デモ

私はこの情報を 3 時間前に投稿しましたが、質問形式だったため、反対/削除されました。コメントとして情報を投稿したかったのですが、そうする評判がありませんでした。より良い解決策は、回答を完全に削除するのではなく、回答を編集することだったでしょう。

于 2013-04-26T21:33:38.787 に答える
2

あなたのコードは良いです。HTML コードを記述して PHP で印刷しようとするときはいつでも、常に PHP の pre-build function を使用してください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;

これを試して。

于 2013-04-26T18:57:12.403 に答える