2011-08-25 48 views
0

试图将数据传递到服务器,但它一直返回一个“参数缺少”PHP jQuery的AJAX

所以,无论是数据没有被传递到PHP脚本或我做错了什么。

这里是jQuery的:

function quickJob(obj) { 

    var quickJobNumber = $(obj).text(); 
    //alert(quickJobNumber) 
    $.ajax({ 
     type: "GET", 
     url: "quickJobCB.php", 
     data: quickJobNumber, 
     success: function(server_response) 
     { 
      $("#message").removeClass().html(server_response); 
     } 
    }); 
} 

好吧....跟踪我创建了一个警报,如下所示的问题时。警报正在产生预期结果。

这里是PHP脚本:

<?php 

require_once("models/config.php"); 


// Make the connection: 
$dbc = @mysqli_connect($db_host, $db_user, $db_pass, $db_name); 

if (!$dbc) { 
    trigger_error('Could not connect to MySQL: ' . mysqli_connect_error()); 
} 

if (isset($_GET['quickJobNumber'])) { 
    $quickJobNumber = trim($_GET['quickJobNumber']); 
    $quickJobNumber = mysqli_real_escape_string($dbc, $quickJobNumber); 

    $query = "SELECT * FROM projects WHERE projectNumber = '" . $quickJobNumber . "'"; 
    $result = mysqli_query($dbc, $query); 


    if ($result) { 
     if (mysqli_affected_rows($dbc) != 0) { 
      while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 

       echo $row['projectName']; 
      } 
     } else { 
      echo 'No Results for :"' . $_GET['quickJobNumber'] . '"'; 
     } 
    } 
} else { 
    echo 'Parameter Missing'; 
} 
?> 

<?php include("models/clean_up.php"); ?> 
+2

请尽量使用描述性标题而不是像“PHP jQuery AJAX”这样含糊的标题,这会让你的问题对其他人寻找答案更加有用。 –

+0

如果您使用的是Firefox,请安装[Live Http Headers](https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/)插件,以查看您的哪些值'传递给'quickJobCB.php'。 –

回答

3

data: quickJobNumber,

应该

data: { 'quickJobNumber': quickJobNumber },

+0

双方都有效。 – JohnD

+0

谢谢你做到了!我想我太接近代码....作为附注请将您的脚本更改为: data:{'quickJobNumber':quickJobNumber}, –

0

你需要传递的数据既可以作为查询字符串,像这样

data: "quickJobNumber="+quickJobNumber, 

或地图像这样

data: data { quickJobNumber: quickJobNumber }, 
0

如果你想使用GET请求,使用$不用彷徨

$.get("/get_request.php", { quickJobNumber: "myAjaxTestMessage"}, 
    function(data){ 
    console.log("WOW! Server was answer: " + data); 
}); 

在PHP

<?php 
if(isset($_GET['quickJobNumber'])){ 
    header('Content-Type: application/json; charset=utf-8'); 
    echo json_encode(array('answer'=>'Hello user!')); 
} 
?> 

如果你想使用POST要求使用$ .post

$.post("/post_request.php", { quickJobNumber: "myAjaxTestMessage"}, 
    function(data){ 
    console.log("WOW! Server was answer: " + data); 
}); 

In php

<?php 
if(isset($_POST['quickJobNumber'])){ 
    header('Content-Type: application/json; charset=utf-8'); 
    echo json_encode(array('answer'=>'Hello user!')); 
} 
?> 

P.S.或者你可以在php中使用$ _REQUEST。