Form der Einreichung in cakephp mit Hilfe von JQuery
Erstellt habe ich das Formular als wie
<?php echo $form->create('Result',array('action'=>'submit'));?>
//some input text fields,texarea fields
<?php echo $form->end('submit');?>
In meinen JQuery code habe ich so geschrieben,
<script>
$(document).ready(function(){
var str,fields;
function showValues() {
str = $("form").serialize();
$("#results").text(str);
}
$(".submit").click(function (){
alert(str);
$.ajax({
type: "POST",
url:"/results/submit"
data: "str="+str,
success: function(msg){
alert( "Data Saved: " + msg);
}
});
return false;
});//submit click
});//document ready
</script>
Edit: Neue Url für die Ajax,
Now when i click the submit button it alerts str correctly..
Like my alert value is
_method=POST&name1=value1&name2=value2
But in the next alert of Data saved it shows only the _method=POST
In meine Ergebnisse-Controller
<?php
class ResultsController extends AppController
{
var $name = 'Results';
var $helpers=array('Html','Ajax','Javascript','Form');
var $components = array( 'RequestHandler','Email');
var $uses=array('Form','User','Attribute','Result');
function submit($id = null)
{
$str=$_POST['str'];
echo "POSTED value ".$str;
//echo $this->params['form']['str'];
}
}
and my Results Table is having (id,form_id,attribute_id,label(eg .name1,name2),value(eg...value1,value2) )
Bitte schlagen Sie mich..
Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Paar Fragen:
Wenn jetzt also das Formular sendet die Ajax-Anfrage wird gesendet, aber Sie werden umgeleitet auf /submit-Seite sowieso, was ich denke, hat aufgefüllt, das GET-array anstelle von POST.
Auch die url fehlt in der Ajax-Anfrage
Versucht, mit Hilfe der Jquery-Form-Plugin, Ihr macht das Leben viel einfacher http://malsup.com/jquery/form/
Gibt es-URL fehlt in ajax-request. Sollte sein:
Nach update:
Ich bin mir nicht sicher, aber in Ihrem submission.php die Datei sollte nicht Ihre erstellen Sie eine Instanz von Controller und rufen Sie die submit-Funktion explizit?
versuchen Sie es mit hinzufügen von e in Ihrem klicken Sie auf Funktion und dann auf der ersten Zeile fügen Sie e.preventDefault(); um zu verhindern, dass die default-Aktion Auftritt.
http://css-tricks.com/return-false-and-prevent-default/
Wenn Sie möchten, senden Sie Ihr Formular mit ajax. Cakephp haben seine Ofen-Mechanismus für, die. Prüfen Sie die unten stehende code