在我的页面上,我有很多表单,其中字段id是基于DB id生成的,如下所示:
<input type="hidden" name="id" value="<?php echo (isset($content))?$content->getId():''?>" />
<input type="hidden" id="x<?php echo $content->getId()?>"/>
<input type="hidden" id="y<?php echo $content->getId()?>"/>
<input type="hidden" id="x2<?php echo $content->getId()?>"/>
<input type="hidden" id="y2<?php echo $content->getId()?>"/>
这给了我所有形式的唯一id。现在我在jquery框架中有了Javascript函数,它可以设置指定字段的无效值:
$(function(){
$('#jcrop_target_id<?php echo $content->getId()?>').Jcrop({
onSelect: updateCoords
});
});
function updateCoords(c)
{
$('#x<?php echo $content->getId()?>').val(c.x);
$('#y<?php echo $content->getId()?>').val(c.y);
$('#x2<?php echo $content->getId()?>').val(c.x2);
$('#y2<?php echo $content->getId()?>').val(c.y2);
};
值c.*可以,但显然#x<?php echo $content->getId()?>
不起作用。做这件事的正确方法是什么?当做
尝试混合php和javascript可能非常困难。原因是它们没有在同一时间或以相同的方式进行处理。PHP首先在服务器上进行处理,然后将处理结果发送到浏览器然后处理任何javascript。
此外,我不认为javascript中的php标记会被真正处理,但我对此并不100%确定。
可以做的一件事(但通常看起来很难看)是使用php来实际创建javascript。例如:
echo '<script type="text/javascript">';
echo 'function updateCoords(c) {';
echo ' $(''#x' . $content->getId() . ''').val(c.x);';
...
echo '}';
echo '</script>';
就像我说的,它看起来很难看,所以我并不推荐它,但它实际上应该像你想要的那样工作。
我也一直设置onChange
事件。这有帮助吗?
$('#jcrop_target_id<?php echo $content->getId()?>').Jcrop({
onSelect: updateCoords,
onChange: updateCoords
});