j'utilise jeditable pour modifier mon comptenu sans actualiser la page
tout fonctionne comme il faut
sauf que il me renvoie l'id de la ville sauvegardé sous la forme d'une variable
se que j'aimerais faire c'est de faire comme dans mes loop sur la page ou je fais la modif transformer l'id en ma ville
dans les loop j'utilise
<?php echo $value['Town']['name']; ?>
et dans se que ej recupere comme contenu je recupere :
<?php echo $posttown ?>
qui me donne juste un id
je sais pas comment faire en sorte de creer une relation comme dans mes loops ...
j'espere que j'ai expliqué clairement mon probleme
merci d'avance de votre aide
Bonjour.
Je crois que tu mélanges tout là.
Et si tu nous montrait un peu plus de code nous pourrons peut-être t'aider, comme par exemple la fonction correspondante de ton controller.
Surtout qu'en exemple tu nous montre en premier un champ name
et en second un champ pour l'id
.
je me disais aussi que c'etais vague ce que j'ai ecris
alors allons y pour une explication pluc complette:
J'utilise jeditable ( http://www.appelsiini.net/projects/jeditable) pour faire de l'edition sur mes pages sans avoir a rafrechir la pages (dsl je me souviens plus de comment sa s'appel ...).
Dans ma base, j'ai une table billet et une table town, chaque town peu avoir plusieurs billet, mais chaque billet peu avoir qu'une seul town.
en general sa marche tres bien dans une loop sur mon index, voici le code de la looop:
<?php foreach ($ticketreservs as $key => $value){ ?>
<div class="post" id="<?php echo $value['Ticketreserv']['id']; ?>">
<?php echo $value['Ticketreserv']['flight_out_date'] ?></div>
из
<div class="town" id="<?php echo $value['Ticketreserv']['id']; ?>"> <?php echo $value['Town']['name']; ?></div>
<?php } ?>
pour que l'actualisation de la class "town" ce fasse j'ai 2 genre de code cella dans mon controller :
function admin_testtown(){
if ($this->data) {
App::uses('Sanitize', 'Utility');
$town = Sanitize::clean($this->data['Ticketreserv']['flight_out_location_departure']);
$ticket_id= $this->data['Ticketreserv']['id'];
$this->Ticketreserv->id = $ticket_id;
$this->Ticketreserv->saveField('flight_out_location_departure', $town);
$this->set('posttown', $town);
}
}
et celui la dans mon js :
<script type="text/javascript">
$(function() {
$('.town').editable('/Erasmo/client/admin/Ticketreservs/testtown', {
id : 'data[Ticketreserv][id]',
name : 'data[Ticketreserv][flight_out_location_departure]',
data : "{<?php echo $tow; ?>}",
type : 'select',
onblur : 'submit',
tooltip : 'Click to edit the titlesss'
});
});
</script>
Tout ca me m'envois sur un fichier dans view qui contiens se qui dois s'afficher une fois que j'ai cliquer en dehors du champs a modifier :
et ce fichier la contiens juste
<?php echo $posttown ;?>
et il me renvoit le resultat qui a ete modifier et donc ici un ID d'une town
ce que je voudrais c'est que a la place de m'ecrire l'id de ma ville il l'ecrive directement le nom de la ville comme il le fait dans les loops
voila j'espere avoir ete plus claire cette fois ci
encore merci d'avoir pris le temps de lire mon post !
EDIT :
alors j'arrive a faire fonctionner le truc en bidouillant, mais c'est super lent par ce que j'ai bcp de table lie a town et du coup il charge tout ...
bref voici comment je le fait fonctionner :
a la place de
<?php echo $posttown ;?>
j'ai mis ça :
<?php
foreach ($towns as $key => $value) {
if ($value['Town']['id']==$posttown) {
echo $value['Town']['name'];
}
}
?>
et j'ai ajouter ce ci a mon controller:
$this->loadModel('Town');
$towns = $this->Town->find('all');
$this->set('towns', $towns);
$this->set($d);
mais comme je le disais je perd ENORMEMENT sur le temps de chargement de la page ... et ce temps va encore continuer a se perdre a mesure que la bdd grandis =(