我有一个输入字段“#PostTitle”,用户可以在其中输入URL。
我想将用户的输入(在更改时或退出字段时)发送到我的Posts控制器中的一个动作,该动作返回一个数组。没有CakePHP,我认为这看起来像这样:
$(document).ready(function(){
$('#PostTitle').change(function(){
$.ajax({
type: 'POST',
url: '/posts/setPostImages',
data: $(this).serialize(),
success: function(data){
do something;
},
error: function(message){
console.debug(message);
}
});
return false;
});
});
Posts控制器中的操作设置了一个名为$ imageArray的链接数组 (我CURL页面并返回该页面上所有图像的数组,如果感兴趣的话)。
然后,在我发出请求之后,我想更新一个依赖于该数组内容的元素。该元素包含以下代码:
<div id="slider-wrap" class="boxframe">
<div class="coda-slider" id="slider-id">
<?php foreach ($imageArray as $image): ?>
<div class="crop">
<?php echo $this->Html->image($image); ?>
</div>
<?php endforeach; ?>
</div>
</div>
感谢任何帮助!
编辑:如果我尝试此操作,则根本不会调用该操作:
echo $this->Js->link('update',
array('action' => 'setPostImages'),
array(
'update' => '#selectImage',
'data' => 'www.stackoverflow.com',
'async' => true,
'dataExpression'=>true,
'method' => 'POST'
)
);
答案 0 :(得分:0)
如果您想使用CakePHP生成此JS,请查看JsHelper's event method和request method
POST请求命中的操作应该呈现您的元素并使用HTML进行响应。然后,JsHelper :: request将用您的HTML替换update
param指定的元素的内容。
就个人而言,我觉得用PHP框架生成Javascript相当迟钝。很快就很难做到你想要的。如果你有相当数量的Javascript,我建议你直接写它(你似乎已经知道如何做了!)。
您的编辑指的是一个可能不同的问题。当您点击该代码段生成的链接时,您在浏览器的控制台中会出现什么样的Javascript错误?