Jquery 如何通过javascript将数据发送到cakephp控制器动作,以便音频文件保存在临时文件夹中
这里是add.ctp文件Jquery 如何通过javascript将数据发送到cakephp控制器动作,以便音频文件保存在临时文件夹中,jquery,html,ajax,cakephp,Jquery,Html,Ajax,Cakephp,这里是add.ctp文件 <script type="text/javascript"> $(document).ready(function() { $('.add_audio').click(function(){ var sFileaudio = document.getElementById("audio").value; if(sFileaudio =="") { alert("plz add an audio file"
<script type="text/javascript">
$(document).ready(function() {
$('.add_audio').click(function(){
var sFileaudio = document.getElementById("audio").value;
if(sFileaudio =="")
{
alert("plz add an audio file");
}
var sFileExtension = sFileaudio.split('.')sFileaudio.split('.').length - 1].toLowerCase();
var iFileSize = document.getElementById("audio").files[0].size;
var iConvert = (iFileSize / 4194304).toFixed(2);
if(sFileExtension != "mp3" || iFileSize > 4194304)
{ /// 4 mb
var div = "Error : plz choose mp3 format and below then 5 mb " ;
var result = div.fontcolor("red");
document.getElementById("color").innerHTML = result;
}
else
{
var div = "Sucess File " ;
var result = div.fontcolor("green");
document.getElementById("color").innerHTML = result;
var formdata = $("#form-validation").serialize();
jQuery.ajax({
url: '<?php echo $this->html->url(array('controller' => 'teachers','action' => 'upload'),true); ?>' ,
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (data)
{
alert(data);
}
});
}
});
});
</script>
$(文档).ready(函数(){
$('.add_audio')。单击(函数(){
var sFileaudio=document.getElementById(“audio”).value;
如果(sFileaudio==“”)
{
警报(“plz添加音频文件”);
}
var sFileExtension=sFileaudio.split('.')sFileaudio.split('.').length-1].toLowerCase();
var iFileSize=document.getElementById(“音频”).files[0]。大小;
var iConvert=(iFileSize/4194304).toFixed(2);
如果(sFileExtension!=“mp3”| | iFileSize>4194304)
{///4MB
var div=“错误:plz选择mp3格式,然后低于5 mb”;
var结果=div.fontcolor(“红色”);
document.getElementById(“color”).innerHTML=result;
}
其他的
{
var div=“成功文件”;
var结果=div.fontcolor(“绿色”);
document.getElementById(“color”).innerHTML=result;
var formdata=$(“#表单验证”).serialize();
jQuery.ajax({
url:“”,
类型:“POST”,
数据:formdata,
processData:false,
contentType:false,
成功:功能(数据)
{
警报(数据);
}
});
}
});
});
基本上,我只想通过javascript/ajax代码将音频文件保存到临时文件夹中
下面是add.ctp文件中的字段和按钮
<tr>
<td class="col-md-4">
<?php echo __('Audio'); ?>
<span class="red_dot">*</span>
</td>
<td class="col-md-8">
<?php echo $this->Form->input("audio" ,array('type' => 'file','id'=>'audio','label' => false,'div' => false,'data-validation-type'=>'present'))?>
</td>
</tr>
<tr>
<td class="col-md-4">
</td>
<td class="col-md-8" id="color">
</td>
</tr>
<tr>
<td class="col-md-4">
</td>
<td class="col-md-8"><input type="button" class="add_audio" value="Upload" id="add" />
</td>
</tr>
*
这里是我在pr中得到的($this->request->data);通过脚本的控制器
排列
(
[教师]=>数组
(
[名称]=>
[电子邮件]=>
[密码]=>
[位置]=>
[主题]=>
[dob]=>
[生物数据]=>
[状态]=>1
)
)
因此,在这个列表中,缺少教师的图像和音频字段。我该怎么补充呢?
我对cakephp和javascripts也很陌生。提前感谢。尝试将ajax调用的url设置为您要查找的操作,类似于
baseUrl+/controller/action
。另外,您使用的是什么版本的Cake?感谢您的回复,Cake版本是1.0,因为您建议它不工作,数据没有进入控制器…最后使用ajaxupload.js脚本完成:-)
Array
(
[Teacher] => Array
(
[name] =>
[email] =>
[password] =>
[location] =>
[subject] =>
[dob] =>
[biodata] =>
[status] => 1
)
)