2015-02-12 88 views
1

我必须通过将信息插入到datbase表后生成的Json数据,现在我必须将此信息传递给其他页面BookingConformation.html如何将json数据从一个html页面传递到使用javascript的其他html页面?

例如,我们会得到表格服务器欢迎先生/女士密特尔感谢预约上门服务预订ID为1所以,请告诉我如何传递信息是可以在javascript形式的服务器现在我已经通过这个信息到其他页面,请帮助我。

脚本

<script> 
    $(document).ready(function(){ 
     $("#register-form").validate({ 
      rules: { 
       userName: "required",       
       email: { 
        required: true, 
        email: true 
       },            
       userContactNumber: "required"      
      }, 
      messages: { 
       userName: "Please enter your Name", 
       userContactNumber: "Please enter your Mobile number",       
       email: "Please enter a valid email address",           
      }, 
      submitHandler: function(form) { 

       var uName = $('#userName').val(); 
       var mailId = $('#email').val();     
       var mobNum = $('#userContactNumber').val(); 

       $.ajax({     
        url:"http://localhost/bookRoom/book.php", 
        type:"POST", 
        dataType:"json", 
        data:{type:"booking", Name:uName, Email:mailId, Mob_Num:mobNum},         
        ContentType:"application/json", 
        success: function(response){ 
        //alert(JSON.stringify(response)); 
        //alert("success");      
        alert(response); 
        var globalarray = []; 
        globalarray.push(response); 
        window.localStorage.setItem("globalarray", JSON.stringify(globalarray)); 
        window.location.href = 'BookingConformation.html'; 
       }, 
        error: function(err){       
         window.location.href = 'error.html'; 
        } 
       }); 
       return false; // block regular submit 
      } 
     }); 
    }); 
</script> 

服务器代码

<?php 
    header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request 
    mysql_connect("localhost","root","7128"); 
    mysql_select_db("service"); 

    if(isset($_POST['type'])) 
    { 
     if($_POST['type']=="booking"){ 
      $name = $_POST ['Name'];  
      $mobile = $_POST ['Mob_Num']; 
      $mail = $_POST ['Email'];    
      $query1 = "insert into customer(userName, userContactNumber, email) values('$name','$mobile','$mail')"; 
      $query2 = "insert into booking(cust_email, cust_mobile, cust_name) values('$mail','$mobile','$name')";   

      $result1=mysql_query($query1);   
      $result2=mysql_query($query2); 
      $id=mysql_insert_id(); 
      $value = "Welcome Mr/Mrs ".$name." Thanks for booking home services your booking id is = ".$id; 
      echo json_encode($value); 
     } 
    } 
    else{ 
     echo "Invalid format"; 
    } 
?> 

BookingConformation.html

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript"> 
      function myFunction() { 
       var globalarray = []; 
       var arrLinks =[]; 
       arrLinks = JSON.parse(window.localStorage.getItem("globalarray")); 
       document.getElementById("booking").innerHTML = arrLinks; 
      } 
     </script> 
    </head> 
    <body> 
     <p id="booking" onclick="myFunction()">Click me to change my HTML content (innerHTML).</p> 
    </bod 

Y>

回答

0

您可以尝试第一页上这个

声明变量

<script type="text/javascript"> 
    var globalarray = []; 
    globalarray.push(response.d); 
    window.localStorage.setItem("globalarray", JSON.stringify(globalarray)); 
</script> 

调用变量第二页

<script type="text/javascript"> 
     var globalarray = []; 
     var arrLinks =[]; 
     arrLinks = JSON.parse(window.localStorage.getItem("globalarray")); 
     console.log(arrLinks); 
</script> 
+0

感谢您的回答,我根据你的改变,但它不工作,请检查更新的代码, – geeks 2015-02-12 05:03:25

+0

尝试使用(response.d),因为我更新了我的代码 – 2015-02-12 05:09:58

+0

什么是response.d ?? – geeks 2015-02-12 05:10:46

0

。您可以使用sessionStorage来存储和检索JSON数据。

var complexdata = [1, 2, 3, 4, 5, 6]; 

// store array data to the session storage 
sessionStorage.setItem("list_data_key", JSON.stringify(complexdata)); 

//Use JSON to retrieve the stored data and convert it 
var storedData = sessionStorage.getItem("complexdata"); 
if (storedData) { 
    complexdata = JSON.parse(storedData); 
} 

要使用使用sessionStorage.clear();

+0

请检查更新的代码,我正在获取conformation.html上的数据,但是只有在单击html elemenet后,请检查,如何不点击任何内容html元素。 – geeks 2015-02-12 05:23:09

1

如果这是你真正的服务器端代码,然后......它完全不安全取出后,sessionStorage的DATAS。您不应该将用户发布的变量直接传递给您的查询。

$query2 = "insert into booking(cust_email, cust_mobile, cust_name) values('$mail','$mobile','$name')"; 

至少使用“mysql_real_escape_string”转义值或使用预处理语句。并且...不再使用mysql,使用mysqli,这与您正在使用的几乎完全相同,但不会很快弃用。

另外,你是json编码的字符串,不需要被json编码,它只是一段文本和无效的json代码。这可能是为什么@SimarjeetSingh Panghlia回答不适合你。

而不是json_encoding该值,编码结构化数组。

$response = array("status" => true); 

if(isset($_POST['type'])) 
    { 
     if($_POST['type']=="booking"){ 
      $name = mysql_real_escape_string($_POST ['Name']));  
      $mobile = mysql_real_escape_string($_POST ['Mob_Num']); 
      $mail = mysql_real_escape_string($_POST ['Email']);    
      $query1 = "insert into customer(userName, userContactNumber, email) values('$name','$mobile','$mail')"; 
      $query2 = "insert into booking(cust_email, cust_mobile, cust_name) values('$mail','$mobile','$name')";   

      $result1 = mysql_query($query1);   
      $result2 = mysql_query($query2); 
      $id = mysql_insert_id(); 

      $response["message"] = "Welcome Mr/Mrs ".$name." Thanks for booking home services your booking id is = ".$id;/* make sure you strip tags etc to prevent xss attack */ 

     } 
    } 
    else{ 
     $response["status"] = false; 
     $response["message"] = "Invalid format"; 
    } 

    echo json_encode($response); 

    /* Note that you are making the query using ContentType:"application/json", */ 

这意味着您应该使用json进行响应,无论查询是否成功。我还建议使用一个名为jStorage的简单jQuery插件,它允许轻松获取/设置对象而无需序列化它们。

相关问题