Dans ma demande, j'utilise après Ajax comme:Utilisation de la variable dans l'Ajax poster
$('#fb_contentarea_col3 #fb_contentarea_col1down2 #saveForm').live("click", function() {
if (!$("#formName").val() == "") {
if (saveDraft == 'on')
status = "Incompleted";
else
status = "Completed";
var formname = $("#formName").val();
$.ajax({
type: "POST",
url: "http://localhost/FormBuilder/index.php/forms/saveForm/",
async: false,
data: "formname=" + formname + "&status=" + status,
success: function(msg) {
getformid = msg;
//returned FOrm id is saved in the JQuery variable
}
//success
});
//ajax
$("#fb_contentarea_col1down21 div").each(function() {
alert("Form id " + getformid);
//alerts me the Form id retrieved
var checked = "false";
var id = $(this).attr("id");
var fsize = $("#input" + id + "").width();
var ftype = $("#input" + id + "").attr('data-attr');
var finstr = $("#instr" + id + "").text();
var fname = $("#label" + id + "").clone().html().replace(/<span.*/, '');
if ($("#label" + id + "> span.req").length > 0)
{
checked = "true";
}
$.ajax({
type: "POST",
url: "http://localhost/FormBuilder/index.php/forms/saveField",
async: false,
data: "sequence_no=" + id + "&name=" + fname + "&type=" + ftype + "&size=" + fsize + "&instr=" + finstr + "&formid=" + getformid + "&required=" + checked,
success: function(msg) {
//alert("Data Saved: " + msg);
}
//success
});
//ajax
}
//for each DIv in mu design page i am saving them as Field
}
//if formname exists
}
//saveForm
Le numéro de formulaire tel qu'il est retourné du côté du contrôleur est enregistré dans la variable getformid correctement, mais il ne se reflète pas dans la ajax saveField post..And il sauve que 0 ne même pas alerte que le formulaire de retour id..Please me suggérer ..
Remarque :: la question est une référence à
https://stackoverflow.com/questions/1264343/varaibles-inside-success-function-of-ajax-post
De plus je donne ici le code dans mon contrôleur pour SaveForm
function saveForm()
{
$this->data['Form']['name']=$this->params['form']['formname'];
$this->data['Form']['created_by']=$this->Session->read('userId');
$this->data['Form']['status']=$this->params['form']['status'];
$this->data['Form']['access']="Private";
$formId=$this->Form->saveForms($this->data);
$this->set('formId',$formId);
}
Et mon modèle saveForms est comme
function saveForms($data)//design saveForm
{
$this->data['Form']['name']=$data['Form']['name'];
$this->data['Form']['created_by']=$data['Form']['created_by'];
$this->data['Form']['status']=$data['Form']['status'];
$this->data['Form']['access']=$data['Form']['access'];
$this->save($this->data);
return $this->id;//returns the saved Form id to the controller
}
Et mon save_form.ctp dans le dossier mon point de vue est comme
<?php echo $formId;?>