我正在开发一个上传脚本,在那里你可以上传图片,这是直接预览。选择文件后,它会将其传递给php脚本,该脚本会回显图片。第一段代码中的jQuery将此代码插入到我的预览中。在图片之后,我打印了一些输入域。在输入字段中,您可以输入要在图片上显示的文本,如果单击预览,则会修改图片并将其显示在另一张图片所在的位置,但输入字段应留在原处。我的代码:
<script type="text/javascript"><!--//--><![CDATA[//><!--
$j(document).ready(function() {
$j('#photoimg').live('change', function() {
$j("#preview").html('');
$j("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
$j("#imageform").ajaxForm({
target: '#preview'
}
}).submit();
});
});
//--><!]]></script>
我的身体里有这样的东西:
<div id='preview'>
</div>
我呼应这一点:
echo "<img src='uploads/".$actual_image_name."' class='preview'><br />";
echo "</div><div id='preview3'>";
echo "Line 1 <input type='text' id='cardtext1' name='cardtext1' value='1'/>";
因此,我想在echo中关闭预览div并打开另一个,这样我就可以更改第一个div (带有图片)中的html代码,而不需要对输入字段进行任何更改。html代码应如下所示:
<div id='preview'>
<img src='uploads/test.jpg' class='preview'><br />
</div> <====this one is missing
<div id='preview3'>
<input type='text' id='cardtext1' name='cardtext1' value='1'/>
</div>
问题是,如果我检查网站的html代码,它只显示新的开始,而不是回显closetag。我也试着把它放在一个php变量中,但也不起作用。为什么会这样呢?该如何修复呢?
发布于 2011-12-14 17:35:02
您的JavaScript代码( jQuery部件)似乎有问题。看起来这里有一个错误的右大括号}
:
$j('#photoimg').live('change', function() {
$j("#preview").html('');
$j("#preview").html('<img src="loader.gif" alt="Uploading...."/>');
$j("#imageform").ajaxForm({
target: '#preview'
} // <-- right here
}).submit();
});
看起来应该是:
$j("#imageform").ajaxForm({
target: '#preview'
}).submit();
无论如何,您试图动态关闭该div
并注入一个新的and所做的事情可能会比它的价值更棘手。我从来没有尝试过这样做,但我觉得这不会是跨浏览器兼容的,即使你让它工作在,比如说,火狐。
与其使用$preview
作为目标,为什么不将其包装在另一个div
容器中,并使用该容器:
<div id="container">
<div id="preview"></div>
</div>
然后,您的jQuery将如下所示:
$j('#photoimg').live('change', function() {
$j("#container").html('')
.html('<img src="loader.gif" alt="Uploading...."/>');
$j("#imageform").ajaxForm({
target: '#container'
}).submit();
});
在这种情况下,生成的PHP结果将如下所示:
echo '<div id="preview">',
"<img src=\"uploads/{$actual_image_name}\" class=\"preview\"><br />",
'</div><div id="preview3">',
'Line 1 <input type="text" id="cardtext1" name="cardtext1" value="1"/>';
https://stackoverflow.com/questions/8501722
复制相似问题