Hi there,

at the moment i have still no success and the same problem.

I have created a new views. Everything works fine. But still the same 
problem that only the event.id will stored into the table. the location_id 
will not stored.

Any ideas ?

*EventLocationsController.php*
function add($id = null) {
if (!empty($this->data)) {
$this->EventLocation->create();
if ($this->EventLocation->save($this->data)) {
$this->Session->setFlash(__('The Post has been saved.', true));
$this->redirect(array('action'=>'add',$this->EventLocation->id));
} else {
$this->Session->setFlash(__('The Post could not be saved. Please, try 
again.', true));
}
}
if (empty($this->data)) {
$this->data = $this->EventLocation->read(null, $id);
}
$events = $this->EventLocation->Event->find('all');
$this->set(compact('events'));
}

public function locations($city_id) {
$this->layout = NULL;
$locations = $this->EventLocation->Location->find('list', 
array('conditions' => array('Location.city_id' => $city_id)));
                $this->set(compact('locations'));
}

*Model/EventLocation.php*
public $belongsTo = array(
'Event' => array(
'className' => 'Event',
'foreignKey' => 'event_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Location' => array(
'className' => 'Location',
'foreignKey' => 'location_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
 var $hasAndBelongsToMany = array(
'Location' => array(
'className' => 'Location',
'joinTable' => 'EventLocations',
'foreignKey' => 'event_id',
'associationForeignKey' => 'location_id',
//'with' => 'PostToTag',
),
);

*View/add.ctp*
<?php 
echo $this->Html->script('http://code.jquery.com/jquery-1.9.1.min.js');
?>
<div class="eventLocations form">
<?php echo $this->Form->create('EventLocation'); ?>
<fieldset>
<legend><?php echo __('Add Event Location'); ?></legend>
<?php
$select_value = array(); 
foreach($events as $event) {
$key = $event['Event']['id'];
$cityid = $event['Event']['city_id'];
$value = $event['Event']['name'];
$select_value[$cityid] = $value;
}

$mydata = $this->data;
echo $this->Form->select('event_id', $select_value, array('label'=> 
'Veranstaltung'));
echo $this->Js->writeBuffer();
?>
<div id="locations"></div>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
</div>

<script typ="text/javascript">
$("#EventLocationEventId").click(function(){
    var cityid = $("#EventLocationEventId").val();
    $.get("/evants/EventLocations/locations/"+ cityid,
function(data) {
$('#locations').fadeOut("fast", function() { 
   $('#locations').html(data);
   $('#locations').fadeIn("fast");
});
});
    return false;
});
</script>

*View/locations.ctp*
<?php 
echo $this->Form->input('EventLocation.location_id',array(
        'label' => __('Location',true),
        'type' => 'select',
        'multiple' => 'checkbox',
        'options' => $locations,
    ));
?>

Am Mittwoch, 6. März 2013 16:03:55 UTC+1 schrieb Jerome Walitzek:
>
> Hi there,
>
> i have following tables
>
> Events
> Cities
> Locations
> EventLocations
>
> When i edit an Event i can select the city (city_id) where the event is.
> But every City has more than one location which i get over AJAX.
> That works Great.
> But now i want to store the locations which i have "checkboxed" into the 
> table "event_locations"
> How can i do that ?
>
> Any ideas ?
>
> Here is my Code:
> *edit.ctp*
> *<?php*
> *echo $this->Form->input('city_id');
> *
> *echo $this->Js->writeBuffer();*
> *?>*
> *
> *
> *<div id="target-div"></div>
> *
> *
> *
> *<script typ="text/javascript">*
> * $("#EventCityId").click(function(){*
> *    var cityid = $("#EventCityId").val();*
> *    $.get("/events/fetch/"+ cityid,*
> * function(data) {*
> * $('#target-div').fadeOut("fast", function() { *
> *   $('#target-div').html(data);*
> *   $('#target-div').fadeIn("fast");*
> * });*
> * });*
> *    return false;*
> * });*
> *</script>*
>
> *EventsController.php*
> *public function fetch($city_id) {*
> *$locations = $this->Event->Location->findAllByCityId($city_id);*
> *$this->set('locations', $locations);*
> *}*
> *
> *
> *fetch.ctp*
> *<?php*
> * $select_value = array(); *
> * foreach($locations as $location) {*
> * $key = $location['Location']['id'];*
> * $value = $location['Location']['name'];*
> * $select_value[$key]    = $value;*
> * }*
> * *
> * $mydata = $this->data;*
> * echo $this->Form->select('Location', $select_value, array('label'=> 
> false, 'multiple' => 'checkbox'));*
> * echo $this->Html->link(__('Add another Location'), array('controller' 
> => 'locations', 'action' => 'add'));*
> *?>*
>
> Thanks for help
>

-- 
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 cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to