我正在开发一个wordpress插件。我有一个php文件,可以控制所有插件和一些php类和css文件。
在主php文件中我创建了一个表单。当表单被提交时,Jquery.Ajax函数捕获表单值并将它们发送到主php文件中定义的php函数。在此之后,jquery必须为您提供警报验证。
我知道如何发送文件imagen。我知道发送文本值很热。
但我不知道如何将文件imagen和文本值发送到我的php主文件中的php函数。这是我的代码:
PHP主文件:
创建表单
function formulario_nueva_ft(){
$cadena="<form id='form_new_ft' method='post' enctype='multipart/form-data'>
$cadena.="<input id='tit_new_ft' maxlength='40' type='text'>";
$cadena.="<input id='horas_new_ft' type='text'>";
$cadena.="<textarea id='requisitos_new_ft' type='text' maxlength='245'> </textarea>";
$lista=new areatematica;
$res=$lista->listarareastematicas();
$cadena.="<select id='cod_at_new_ft'>";
foreach($res as $valor){
$cadena.="<option value='.$valor->id_at.'>".$valor->titulo_at."</option>";
}
$cadena.="</select>";
$cadena.="<select id='modalidad_new_ft'>
<option value='online'>Online</option>
<option value='mixta'>Mixta</option>
<option value='presencial'>Presencial</option>";
$cadena.="</select>";
$cadena.="<input type='file' name='new_pdf_ft' id='new_pdf_ft'/>";
$cadena.="<h4 id='loading' >loading..</h4><div id='message'></div>";
$cadena.="<input id='btn_new_ft' type='submit' value='Añadir'>";
$cadena.="</form>";
echo $cadena;
die();
}
这是我捕获ajax响应,在mysql中插入数据并上传图像文件的地方:
function crear_ft(){
$tit=$_POST['tit'];
$hor=$_POST['hor'];
$req=$_POST['req'];
$cod_at=$_POST['cod'];
$modalidad=$_POST['mod'];
$pdf=$_POST['pdf'];
$tabla='ft';
$ft=new curso();
$sourcePath = $_FILES['new_pdf_ft']['tmp_name'];
$targetPath = "archivos/".$_FILES['new_pdf_ft']['name'];
move_uploaded_file($sourcePath,$targetPath);
$ft->set_titulo($tit);
$ft->set_horas($hor);
$ft->set_requisitos($req);
$ft->set_cod_at($cod_at);
$ft->set_modalidad($modalidad);
$ft->set_pdf($pdf);
$ft->set_tabla($tabla);
$nada=$ft->insertarcurso();
echo $nada;
die();
}
这是我的js代码: 这必须是“实时”方法,因为它是关于出现的元素 在其他js事件之后。
jQuery('#form_new_ft').live("submit", function(e){
var file = new FormData(jQuery('#form_new_ft'));
e.preventDefault();
jQuery("#message").empty();
jQuery('#loading').show();
jQuery.ajax({
url: "/wordpress/wp-admin/admin-ajax.php",
type: "POST",
contentType: false,
processData: false,
cache: false,
//how to send img file and string values?
data: file + { tit:jQuery('#tit_new_ft').val(),
hor:jQuery('#horas_new_ft').val(),
req:jQuery('#requisitos_new_ft').val(),
mod:jQuery('#modalidad_new_ft').val(),
cod:jQuery('#cod_at_new_ft').val(),
pdf:jQuery('#modalidad_new_ft').val(),
action:'crear_ft'//this is the php function that will
//handle this data.
},
success: function(data){
jQuery("#message").html('');
jQuery("#message").html(data);
},
error: function(){
alert("Error funcion");
}
});
});
请帮帮我!!
答案 0 :(得分:0)
我不明白你的`档案+&#39;。 我希望在数据对象中有一些诸如
之类的东西img:$("#new_pdf_ft").val(),