我正在使用jQuery-function在单击时触发ajax请求。但是,尽管脚本应该通过post方法发送值,但我没有得到结果。看起来PHP脚本没有接收到这个值,但问题可能出在其他地方。
也许有人能告诉我问题出在哪里。
doClick = function (sender){
var jid = sender.id;
if ($(window).width() < 768) {
$('.jwin').addClass('order-md-1').removeClass('order-md-2').removeClass('d-none');
$('.jobs').addClass('order-md-2').removeClass('order-md-1').removeClass('d-block').addClass('d-none');
var ink = document.getElementById('ajax').value;
$.ajax({
url:"get_job.php",
method:"POST",
data:{jid:jid},
cache:false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success:function(data)
{
//console.log(data.success);
if(data.success == TRUE)
{
//$('#ajax').text(data.nurl);
$('#title').text(data.title);
$('#crp').text(data.compnme);
$('#descript').html(data.jtxt);
$('#jadoci').text(data.city);
$('#jadost').text(data.state);
$('#connx1').css("display", "inline");
$('#connx2').css("display", "inline");
$('#applylink').css("display","block");
$('#applylink').attr('href',"links?jid="+jid);
if(data.url==''){
$('#applylink').css("display","none");
}
}else{
// Fade in
alert(data.success);
}
}
});
$('#returnmobile').append("<a href=''>"+jid+"</a>");
}
else {
$.ajax({
url:"get_job.php",
method:"POST",
data:{jid:jid},
cache:false,
dataType: "json",
contentType: "application/json; charset=utf-8",
success:function(data)
{
//console.log(data.success);
if(data.success == TRUE)
{
//$('#ajax').text(data.nurl);
$('#title').text(data.title);
$('#descript').html(data.jtxt);
if(data.company==0){
$('#crp').text("Agent");
}
else{
$('#crp').text(data.compnme);
$('#crp').attr('href','company?id='+data.company)
}
$('#jadoci').text(data.city);
$('#jadost').text(data.state);
$('#connx1').css("display", "inline");
$('#connx2').css("display", "inline");
$('#applylink').css("display","block");
$('#applylink').attr('href',"links?jid="+jid);
if(data.url==''){
$('#applylink').css("display","none");
}
}else{
// Fade in
alert(data.success);
}
}
});
//alert('More than 960');
}
};
和PHP代码:
require "config.php";
$jid = $_POST["jid"];
$ipa = $_SERVER['REMOTE_ADDR'];
$query = $con->query("SELECT jla.title AS title, jla.summary AS jtxt, jla.city AS city, jla.state AS state, jla.company AS corp, c.name AS company, jla.url AS url, jla.id AS coid FROM jobs jla LEFT JOIN companies c ON c.id = jla.company WHERE jla.id = $jid");
if($query->num_rows > 0){
while($row = $query->fetch_assoc()){
$output = array('success'=>TRUE,
'nurl'=>("<b>Does</b> it work? Yes!"),
'company'=>$row['corp'],
'compnme'=>$row['company'],
'title'=>$row['title'],
'city'=>$row['city'],
'state'=>$row['state'],
'coid'=>$row['coid'],
'url'=>$row['url'],
'jtxt'=>$row['jtxt']);
$quip0 = $con->query("SELECT * FROM clicks WHERE ip = '$ipa' AND job_id = '$jid'");
if($quip0->num_rows < 1){
$quip1 = "INSERT INTO clicks (ip, job_id) VALUES ('$ipa','$jid')";
if ( $con->query($quip1) === TRUE) {
echo json_encode($output,JSON_FORCE_OBJECT);
}
}
else {
echo json_encode($output,JSON_FORCE_OBJECT);
}
}
}
再一次:我收到的结果似乎是空的。即使在Chrome的检查模式下,我也看不到我期望的值,这让我怀疑$jid的值不会被正确地传递。顺便说一句:到目前为止,sender.id是有效的。我曾经测试过这个。
发布于 2018-06-02 05:35:48
您没有在服务器上发送json或预期的json,因此删除:
contentType: "application/json; charset=utf-8",
发布于 2018-06-02 04:48:11
可能会有几个问题。一个常见的问题是,当请求来自不同的域时,服务器不会为请求提供服务。在文件或函数的开头使用header('Access-control-allow-origin: *')
谨慎使用CORS
https://stackoverflow.com/questions/50650680
复制相似问题