2014-09-23 44 views
0

我是新來的stackflow和m有一些問題,而從關聯數組中使用jquery的json ajax編碼值時,jquery腳本什麼都不做!jquery ajax數據類型json不能使用php關聯數組

它的一個腳本,少了點什麼,但通過JSON編碼給你回這兩個用戶名和密碼,還給你......

這裏是我的index.html文件的代碼:

<html> 
<head> 
    <title>test jquery</title> 
    <script type="text/javascript" src="js/jquery.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function() { 

     $("#button").click(function() { 

      var sendu = $("#username").val(); 
      var sendp = $("#password").val(); 

      $.ajax({ 
       type: "POST", 
       url: "ajax.php", 
       data: "username="+sendu+"&password="+sendp, 
       dataType: "json", 
       success: function(msg,string,jqXHR){ 
        $("#result").html(msg.name); 
       } 

      });   

     }); 

    }); 


    </script> 

</head> 
<body> 

    Name: <input type="text" id="username" name=""username /> <br /> 
    Password: <input type="password" id="password" name="password" /><br /> 

    <input type="button" value="send" id="button" /> 
    <div id="result"></div></p> 

</body> 
</html> 

這是PHP文件:

<?php 

$name = $_REQUEST['username']; 
$password = $_REQUEST['password']; 

$a = array('name'=>$name, 'password'=>$password); 

$c = json_encode($list); 

echo $c; 


?> 

所以當我刪除的數據類型:「JSON」當我從PHP文件中刪除關聯數組,一切順利的話,它的工作!

這裏是消除JSON編碼後:

HTML:

<script type="text/javascript"> 
$(document).ready(function() { 

    $("#button").click(function() { 

     var sendu = $("#username").val(); 
     var sendp = $("#password").val(); 

     $.ajax({ 
      type: "POST", 
      url: "ajax.php", 
      data: "username="+sendu+"&password="+sendp, 

      success: function(msg,string,jqXHR){ 
       $("#result").html(msg); 
      } 

     });   

    }); 

}); 


</script> 

和PHP文件:

<?php 

$name = $_REQUEST['username']; 
$password = $_REQUEST['password']; 


$c = "your name is ".$name."<br />and your password is ".$password; 

echo $c; 


?> 

還有一件事是,我不是一個英國人這樣如果您發現任何常見的語法錯誤,請忽略!

+0

您的數據不是JSON格式,而只是一個常規網址。大衛瓊斯的答案是正確的。 PS。使用'$ _POST'而不是'$ _REQUEST'。 – GuyT 2014-09-23 13:26:06

+0

感謝GuyT爲你的答案,但它的工作使用$ _REQUEST 和感謝大衛吉恩 – 2014-09-23 14:08:02

+0

我知道,但我只想給你使用'$ _POST'的建議。 '$ _REQUEST'的問題在於,如果名稱相同,它將接受每種方法。換一種說法;它也接受'$ _COOKIE','$ _SESSION','$ _GET'。對於黑客來說,它會更容易,因爲所有的方法都可用(如果你想用戶輸入你不會受到攻擊)。 – GuyT 2014-09-24 06:34:08

回答

1

有一兩件事我注意到的是這條線在你的AJAX調用應該是:

data: "username="+sendu+"&password="+sendp, 

應該是:

data: {username: sendu, password: sendp} 

這樣,你可以使用的dataType時訪問的變量:JSON