2015-06-29 49 views
1

我在ajax中有以下代码。我将两个参数$job_idq传递到了一个名为interview.php的页面,但是。但是,该页面给我的警告是$job_id未定义。我不知道如何使用AJAX POST或GET多个变量。从Ajax向PHP传递数据

我的AJAX文件是:

<script> 
function showSuccess ($getid,str) { 
    var job_id= $getid; 
var resp; 
if (window.XMLHttpRequest) { 
    resp = new XMLHttpRequest(); 
    xmlhttp = new XMLHttpRequest(); 
} else if (window.ActiveXObject) { 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
var data = "job_id="+job_id 
    xmlhttp.open("POST", 
     "interview.php?q="+str); 
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");     
    xmlhttp.send(data); 
    xmlhttp.onreadystatechange = 
    function display_data() { 
    if (xmlhttp.readyState == 4) { 
     if (xmlhttp.status == 200) { 
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText; 

} 
    } else { 
     alert('Request not successful.'); 
     } 
    } 
    } 


</script> 

interview.php:

<?php 
$q = intval($_POST['q']); 
?> 
<?php 

$getid = $_POST['job_id'];?> 

<?php 
include('includes/conn.php'); 

$row="SELECT idNo,id,name,jobTitle,SUM(points) AS total FROM shortlist WHERE job='$getid' GROUP BY id ORDER BY total DESC LIMIT $q"; 
$query=mysqli_query($conn,$row) or die(mysqli_error($conn)); 

while($row=mysqli_fetch_array($query)) 
{ 
    echo $row['name']; 
} 

mysqli_close($conn); 
?> 
+0

'var job_id = $ getid;'是否有效? –

+0

运行的脚本是'else alert('请求不成功'); }'在警告框中单击确定后,我收到一条警告:q未定义索引 – Colo

+0

请尝试....数据:{para1:value1,para2:value2} – user1844933

回答

0

如果你不理解JavaScript和Ajax,只是尽量用一些简单的像jQuery。

实际上你只给PHP脚本一个变量,这就是你得到这个错误的原因。尝试改变这一点:

xmlhttp.open("POST", "interview.php?q="+str); 

xmlhttp.open("POST", "interview.php?q="+str+"&job_id="+job_id); 
+0

另外如果你想用纯js来阅读并学习这个http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp – SkyFox

0

更改data这个var data = "job_id="+job_id+"&q"+str
Undefined index: q是因为您正在使用post方法获取数据,并且您使用get方法发送数据,这就是为什么您会收到错误。
请尝试下面的代码。

xmlhttp.open("POST","interview.php"); 
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");     
xmlhttp.send(data); 
+0

并且介意这个'var job_id = $ getid;'不会给任何值赋值你的'job_id'。 :) –