1

配列をループするときに、img、ul などの html 要素を表示しようとすると問題が発生します。

$.each(data[0], function(i, dataa) {
    if(i == 'images') {
        $.each(data[0].images, function(x, datab) {
            $('.g').append('<tr><td>'+datab.imgid+'</td></tr>');
        });
    } else if(i == 'desc') {
        $('.g').append('<tr><td><label>' + i + ' : </label></td>' + '<td>' + dataa + '</td></tr>');
    } else {
        $('.g').append('<tr><td><label>' + i + ' : </label></td>' + '<td><input type="text" name="' + i + '" id="' + i + '" value="' + dataa + '" ></td></tr>');
    }
});

以下は、配列に画像を追加しています。

foreach($_FILES['uploadsell1'][tmp_name] as $key => $value) {
    if($_FILES['uploadsell1'][tmp_name][$key] != null) {
        $filename = $_FILES['uploadsell1'][name][$key];
        $tempname = $_FILES['uploadsell1'][tmp_name][$key];
        copy($tempname, 'images/ads/tempads/'.$filename);

        $df[]["imgid"] = "<img src='/images/ads/tempads/".$filename."' height='80' width='100' />";
    }
}


$row['images'] = $df;                       
echo '['.json_encode($row).']';

フィールドに投稿されたデータは正常に機能します。html要素が含まれているだけでめちゃくちゃになります。これを回避する他の方法はありますか?

4

1 に答える 1

0

あなたが探しているのはattr()

からコードを変更してみてください

$('.g').append('<tr><td>'+datab.imgid+'</td></tr>');

$('.g').append( $('<tr/>').append($('<td/>').append($("<img/>").attr("src", datab.imgid).attr("width",datab.width).attr("height",datab.height))));

クライアント側で。サーバー側では、次のようなことをする必要があります

$df = array ( array("src" => 'images.jpg', 'height' => '80', 'width' => '100') );

これは、タグを分割し、HTML でタグに付けたいすべての属性を詳述することを意味します。次のようなことをすると、より一般的な方法を簡単に取得できることに注意してください

$df = array ( array("src" => 'images.jpg', "attrs" => array('height' => '80', 'width' => '100')) );

そして、JavaScriptループで「attrs」も同様にループします。

タグ属性の代わりに、CSS を記述する行に沿って何かを検討することをお勧めします。そして、CSS がより強力であるため、css(key,value)代わりにJavaScript を呼び出す必要があります。attr(key,value)

しかし、アイデアは、次のHTMLを構築したい場合です

<img src="my_src.jpg" height="100" width="80"/>

次に、JavaScriptは次のようになります

$("<img/>").attr("src","my_src.jpg").attr("height","100").attr("width","80")

私のサイトで実行例を確認できます。

あなたの質問を誤解した場合、または私の回答に問題がある場合は、お知らせください。編集します。

于 2012-09-07T13:01:05.157 に答える