1

我有一个输入字段“#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'
      )
   );
4

1 回答 1

0

如果你想用CakePHP生成这个JS,看看JsHelper的事件方法请求方法

POST 请求命中的操作应该呈现您的元素并以 HTML 响应。JsHelper::request 然后将update用您的 HTML 替换参数指定的元素的内容。

就个人而言,我发现使用 PHP 框架生成 Javascript 相当迟钝。做你想做的事很快就会变得很困难。如果你甚至有适量的 Javascript,我建议直接编写它(你似乎已经知道如何做到这一点!)。

您的编辑指的是一个可能不同的问题。当您单击该片段生成的链接时,您在浏览器的控制台中遇到了什么样的 Javascript 错误?

于 2012-11-08T02:02:12.770 回答