我是javascript,jquery,ajax的新手。我有一个问题,我的代码没有工作。 我的代码和我的工作描述如下所述。有人可以帮帮我吗。
我有hotjobs.php文件和hotjobsoutput.js文件和api.php文件。在hotjobs.php文件中,我的代码如下:
Hotjobs.php:
<?php
$sql=mysql_query("select * from hotjob");
$count=mysql_num_rows($sql); if($count>0){ while
($result=mysql_fetch_array($sql)){?><tr><td><?php echo
$result['job_title'];?></td></tr><?php }}?>
现在我想在使用ajax jquery点击其job_title名称即$ result ['job_title']时从数据库获取行数据。为此,我需要将$ result ['job_title']的特定id传递给ajax jquery源代码(hotjoboutput.js),以便可以传递id 将api.php文件作为ajax url参数。
我的api.php文件包含:
<?php
include("config.php");
$jobid=$_GET['jobid'];
$sql=mysql_query("select * from hotjobs where job_id='$jobid'");
$count=mysql_num_rows($sql);
if($count==1){
$result=mysql_fetch_array($sql);
}
echo json_encode($result);
?>
我的hotjoboutput.js包含:
$function getrecord(id){
var jobid=id;
$.ajax({
url:'api.php?',
data:"jobid="+jobid,
dataType:'json',
success:function(data)
{
var jobtitle=data[1];
var refrence_no=data[2];
var company=data[3];
var country=data[4];
var salary=data[5];
var salaryincurrency=data[6];
var dutyhours=data[7];
var food=data[8];
var accomodation=data[9];
var medical=data[10];
var overtime=data[11];
var period=data[12];
var leavedays=data[13];
var joiningairticket=data[14];
var returnairticket=data[15];
var nofvaccancy=data[16];
var note=data[17];
$("#hotjoboutput").html("<p>vaccancy for "+jobtitle+"</p><table border=1px cellpadding=2px><tr><td>Refrence_no</td>td>"+Refrence_no+"</td></tr>
<tr><td>Company</td><td>"+company+"</td></tr>
<tr><td>Country</td><td>"+country+"</td></tr>
<tr><td>Salary</td><td>"+salary+"</td></tr>
<tr><td>Salary in Currency</td><td>"+salaryincurrency+"</td></tr>
<tr><td>Duty </td><td>"+dutyhours+"</td></tr>
<tr colspan=2>Terms and conditions</tr>
<tr><td>Food</td><td>"+food+"</td></tr>
<tr><td>Accomodation</td><td>"+accomodation+"</td></tr>
<tr><td>Medical</td><td>"+medical+"</td></tr>
<tr><td>Overtime</td><td>"+overtime+"</td></tr>
<tr><td>Period of contract</td><td>"+period+"</td></tr>
<tr><td>Leave</td><td>"+leavedays+"</td></tr>
<tr><td>Joining Air Ticket</td><td>"+joiningairticket+"</td></tr>
<tr><td>Return Air Ticket</td><td>"+returnairticket+"</td></tr>
<tr><td>No of vaccancy</td><td>"+nofvaccancy+"</td></tr>
<tr><td>Note</td><td>"+note+"</td></tr>
</table>");
}
});
});
我希望我能以某种方式澄清我的问题。如果有人可以帮助这个家伙的话!
答案 0 :(得分:0)
最简单的方法是将ID转换为内联点击事件:
<tr><td><a href="javascript:void(0);" onclick="getrecord(<?php echo (int)$result['job_id']; ?>)"><?php echo htmlspecialchars($result['job_title']);?></a></td></tr>
或者,您可以将ID放在data-id
属性中并使用jQuery检索它:
<tr><td><a class="job-title" href="javascript:void(0);" data-id="<?php echo (int)$result['job_id']; ?>"><?php echo htmlspecialchars($result['job_title']);?></a></td></tr>
使用Javascript:
$(document).ready(function(){
$('.job-title').click(function(){
getrecord($(this).data('id'));
});
});
附注:mysql_*
已弃用且您有SQL注入漏洞。切换到MySQLi或PDO准备语句。
快速解决方法是:
$jobid = (int)$_GET['jobid'];
我还添加了htmlspecialchars()
来阻止XSS。