如何将变量从php文件传递到jquery ajax文件,将其url参数发送到另一个php文件?

时间:2012-12-19 07:35:44

标签: php javascript jquery ajax

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

});

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

1 个答案:

答案 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。