0

我是 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 作为 ajax url 参数传递给 api.php 文件。

我的 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>");
}
});

});

我希望我能以某种方式清楚我的问题。请如果有人可以帮助这个人!

4

1 回答 1

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。

于 2012-12-19T07:40:42.843 回答