无法使用ajax将变量传递到另一个页面

时间:2014-07-03 04:07:32

标签: php html ajax

我需要一些建议/帮助。我正在尝试使用ajax从链接传递2个变量到其他页面但是当我单击链接时,没有响应。好像我的ajax不工作,如果有人可以在这里提供帮助,我将不胜感激。谢谢。

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>Untitled Document</title>
        <script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>
        <script  type="text/javascript" src="productshow.js"></script>
    </head>

    <body>  
<?php              
$sql = mysql_query ("SELECT  * FROM espaceproduct WHERE email = 'jaychou@hotmail.com' ");    
?>

<?php   
$result1  = array();        
$result2  = array();
$loopCount1 = 0;          
$loopCount2 = 0;

while($row = mysql_fetch_array($sql))
{   
    $result1[] = $row['thumbnail']; 
    $result2[] = $row['id']; 

    $_SESSION['thumbnail'] = $result1;

    //$url = "profileview.php?email=".$result1[$loopCount1].'&'. "id=".$result2[$loopCount2];

    $loopproduct = $result1[$loopCount1];

    $loopid = $result2[$loopCount2];

    echo"<br/>"."<br/>";               

    echo '<a  href="#" onClick="ajax_post($loopproduct,$loopid)" >'. $_SESSION['thumbnail'][$loopCount1] .'</a>'."<br/>" ;
    $loopCount1++;
    $loopCount2++;
}

?>  
    </body>
</html> 

这是我的ajax页面

function list_chats(){
    var hr = new XMLHttpRequest();
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {          
            document.getElementById("showbox").innerHTML = hr.responseText;         
        }
    }
    hr.open("GET", "productshow.php?t=" + Math.random(),true);
    hr.send();
}

setInterval(list_chats, 500); 

function ajax_post(la,ka){
    // Create our XMLHttpRequest object
    var hr = new XMLHttpRequest();
    // Create some variables we need to send to our PHP file
    var url = "espaceproductinsert.php";

    var kn = "add="+la+"&csg="+ka;

    hr.open("POST", url, true);
    // Set content type header information for sending url encoded variables in the request
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    // Access the onreadystatechange event for the XMLHttpRequest object
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
            var return_data = hr.responseText;

            document.getElementById("status1").innerHTML = return_data;         
        }
    }

    // Send the data to PHP now... and wait for response to update the status div
    hr.send(kn); // Actually execute the request

    document.getElementById("csg").value = "";   
}

这是应插入变量的页面

<?php
$add = $_POST['add'];
$csg = $_POST['csg'];

$sql2 = mysql_query ("INSERT INTO espaceproduct ( storename,productname ) VALUES ('$add','$csg') ");

?>

3 个答案:

答案 0 :(得分:1)

Smiply试试这个

function ajax_post(la,ka){

$.post("espaceproductinsert.php", { add:la, csg:ka},
   function(data) {
           alert(data);
   });

}

答案 1 :(得分:0)

在第1页中正确添加此脚本

<script language="javascript" type="text/javascript">
        var httpObject=false;
        if(window.XMLHttpRequest){
            httpObject = new XMLHttpRequest();
        }else if(window.ActiveXObject){
            httpObject = new ActiveXObject("Microsoft.XMLHttp");
        }

        function tranferData(){

            var data1= document.getElementById('div1').value;
            var data2= document.getElementById('div2').value;
            var queryString = "?data1=" + data1;
            queryString +=  "&data2=" + data2;

            httpObject.onreadystatechange = function(){
                if(httpObject.readyState == 4 && httpObject.status == 200){
                    var error = document.getElementById('error');
                    var response = httpObject.responseText;

                    alert(response);
                }
            }
            httpObject.open("GET", "page2.php"+queryString ,true);
            httpObject.send(null);
        }
    </script>

您使用上述脚本发送数据并从另一页接收

第2页

<?php
echo $_GET['data1'];
echo $_GET['data2'];
?>

答案 2 :(得分:0)

并在服务器端执行此操作

<?php

header('Content-Type: application/json');
echo json_encode($_GET); //for testing replace with array('key'=>$value);
?>