Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何通过javascript将数据发送到cakephp控制器动作,以便音频文件保存在临时文件夹中_Jquery_Html_Ajax_Cakephp - Fatal编程技术网

Jquery 如何通过javascript将数据发送到cakephp控制器动作,以便音频文件保存在临时文件夹中

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"

这里是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");
      }
    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 )

)