I got the Autocomplete widget to work with the following:

Same autocomplete widget file as you but different code in controller and 
view file:
Controller:
public $helpers = [
        'Form' => [
            'widgets' => [
                'autocomplete' => ['App\View\Widget\Autocomplete']
            ]
        ]
    ];

add.ctp:
<?php 
    echo $this->Html->css('jquery-ui.theme.css');
    echo $this->Html->script('jquery',['block'=>true]);
    echo $this->Html->script('jquery-ui',['block'=>true]);
    $this->Html->scriptStart(['block'=>true,'safe'=>false]);
    ?>
<!--
$(document).ready(function(){ 
    
         var availableTags =[ <?php
$prefix = '';
$lst ='';
foreach ($salesPeople as $sp)
{
    $lst .= $prefix . '"' . $sp . '"';
    $prefix = ', ';
}
echo $lst;
  ?>];
        <?php 
        if(strlen($purchase->sales_person)>0){?>
             $( "#sales_person" ).autocomplete({source: 
availableTags}).val('<?= 
$purchase->sales_person?>').data('autocomplete')._trigger('select');
    <?php
        }?>   
    });

//-->

<?php 
    $this->Html->scriptEnd();
    // Using a classname.
    $this->Form->addWidget(
            'autocomplete',
            ['App\View\Widget\Autocomplete']
    );
?>    
    <div class="purchases form">
<?= $this->Form->create($purchase,['templates'=>['autocomplete' => '<input 
id="sales_person" name="{{name}}"{{attrs}}>'],
                                                                        
'onsubmit'=>'return validateForm()']); ?>
    <fieldset>
        <legend><?= __('Add Purchase'); ?></legend>
    <?php
        echo $this->Form->input('sales_person', ['type' => 
'autocomplete','label'=>'Sales 
Person','id'=>'sales_person','required'=>true]);
  </fieldset>
<?= $this->Form->button(__('Submit')); ?>
<?= $this->Form->end(); ?>
</div>


I eliminated all of the items not necessary for the example, so there are 
likely errors in there, but it should give you the gist of what is needed 
for the autocomplete to work.

Regards,
--Kevin

On Tuesday, September 30, 2014 7:33:24 PM UTC+7, Radharadhya Dasa wrote:
>
> Hi, 
>
> I am trying to make an autocomplete input work on Cake 3.0
>
> The current 3.0 cookbook gives a code example here : 
> http://book.cakephp.org/3.0/en/core-libraries/helpers/form.html
>
> If I try it I get an error message: 
> *Fatal error*: Declaration of App\View\Widget\Autocomplete::render() must 
> be compatible with Cake\View\Widget\WidgetInterface::render(array $data, 
> Cake\View\Form\ContextInterface $context) in 
> */home/rrd/public_html/sanga/src/View/Widget/Autocomplete.php* on line 
>
> *6*If I change my render function to 
>
> *public function render(array $data, Cake\View\Form\ContextInterface 
> $context) {*
> Still I get the same error message.
>
> Any idea how to solve this?
>
> rrd
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to