我有一个表单,它使用 post 方法将其内容提交到php
脚本,该脚本返回一个xml
文件。我在检测错误时发现问题,我在 Firefox 控制台中没有看到任何错误,这是 jquery 代码:
$(document).ready(function() {
$('form').submit( function() {
//alert('bonjour');
var pr= $('#prenom').val();
var te=$('#tech').val();
var sk=$('#skills').val() ;
$("#form1").ajaxError(function(){
alert("An error occured!");
});
$.ajax({
url: "filter.php",
type: "POST",
data: { prenom: pr , tech: te , skills: sk },
dataType: "xml",
success: function(data) {
//alert(data);
$(data).find('collaborateur').each(function(){
var id = $(this).attr('id');
var urlPhoto = $(this).find('urlphoto').text();
var nb_cv = $(this).find('nb_cv').text();
var poste = $(this).find('poste').text();
var nb_ann_exp = $(this).find('nb_ann_exp').text();
var identite = $(this).find('identite').text();
var nom = $(this).find('nom').text();
var prenom = $(this).find('prenom').text();
$('<div class="items" id="link_'+id+'"></div>').html('<a href="'+urlPhoto+'"
style="float:left">'+nom+'</a><span>'+nom+' '+prenom+'</span>').appendTo('#result');
}
);
//$('#result').html(data);
alert('Load was performed.');
},
fail: function(){alert ('fail');}
});
});
});
生成php
代码xml
filter.php
如下
header('Content-type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo '<collaborateurs>';
include("connection.php");
require("functions.php");
$tab = array();
$tab = filter($_POST['prenom'], $_POST['tech'], $_POST['skills']);
// print_r($tab);
// exit;
foreach ($tab as $key => $value)
{
echo '<collaborateur id="'.$key.'">';
echo '<nom>'.$value['nom'].'</nom>';
echo '<prenom>'.$value['prenom'].'</prenom>';
echo '<nb_cv>'.$value['nb_cv'].'</nb_cv>';
echo '<poste>'.$value['poste'].'</poste>';
echo '<nb_ann_exp>'.$value['nb_exp'].'</nb_ann_exp>';
echo '<identite>'.$value['ident'].'</identite>';
// echo '<nb_visite>'.$value['nb_visite'].'</nb_visite>';
echo '</collaborateur>';
}
echo '</collaborateurs>';
过滤功能
function filter($pren, $tech, $comp)
{global $connection;
$tab = array();
$query="SELECT DISTINCT c.id_c,`prenom`,`nom`,`nb_exp`,`ident`,`poste` , NomPhoto,
nb_cv FROM `collaborateur` c, techno_mai m , competence_cle cc where( prenom like
'$pren' or (m.lib_tech like '$tech' and m.id_c =c.id_c ) or (cc.id_c = c.id_c and
cc.lib_cc like '$comp')) ";
$c12=mysql_query($query, $connection)or die(mysql_error());
$i =0;
while($fil= mysql_fetch_array($c12))
{
$tab[$i]['prenom'] =$fil['prenom'];
$tab[$i]['nom']= $fil['nom'];
$tab[$i]['nb_exp']=$fil['nb_exp'];
$tab[$i]['ident']=$fil['ident'];
$tab[$i]['poste']=$fil['poste'];
$tab[$i]['NomPhoto']=$fil['NomPhoto'];
$tab[$i]['nb_cv']=$fil['nb_cv'];
$tab[$i]['nom']=$fil['nom'];
$tab[$i]['prenom']=$fil['prenom'];
$i++;
}
return $tab;
}
我以没有的形式测试了php
代码,ajax
它呈现了一个正确的xml
文件。没有ajax的服务器输出(xml文件)
<collaborateurs>
<collaborateur id="0">
<nom>semi</nom>
<prenom>troc</prenom>
<nb_cv>0</nb_cv>
<poste>tech</poste>
<nb_ann_exp>12</nb_ann_exp>
<identite>dis</identite>
</collaborateur>
<collaborateur id="1">
<nom>tarek</nom>
<prenom>fellah</prenom>
<nb_cv>0</nb_cv>
<poste>dev</poste>
<nb_ann_exp>2</nb_ann_exp>
<identite>dev web</identite>
</collaborateur>
<collaborateur id="2">
<nom>ahmed</nom>
<prenom>hamza</prenom>
<nb_cv>0</nb_cv>
<poste>dev web</poste>
<nb_ann_exp>0</nb_ann_exp>
<identite>dev web</identite>
</collaborateur>
</collaborateurs>
并提前感谢。