2014-10-11 94 views
1

我正在使用以下代碼,並且需要從php訪問表單文本框的輸入值。表單不會直接通過表單標籤提交給服務器。該按鈕正在調用JS函數。我需要從php代碼中訪問名爲stName的輸入文本框。我如何將這些信息傳遞給php並從那裏訪問?謝謝。使用JSON將表單變量傳遞給php

<!DOCTYPE html> 
<html><head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
<link rel="stylesheet" type="text/css" href="jquery.mobile-1.4.4.min.css"> 

<script src="jquery-1.11.1.min.js"></script> 
<script src="jquery.mobile-1.4.4.min.js"></script> 
<script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
<script charset="utf-8" type="text/javascript"> 
function connect() 
{ 
    $.ajax({ 
     url:'hostname/reply.php', 
     headers:{"Content-Type": "application/json"}, 
     type:'POST', 
     data:$(this), 
     dataType:'JSON', 
     error:function(jqXHR,text_status,strError){ 
      alert(strError);}, 
     timeout:60000, 
     success:function(data){ 
      $("#result").html(""); 
       for(var i in data){ 
       $("#result").append("<li>"+data[i]+"</li>");      
       } 
      } 
     });  
} 
</script> 
</head> 
<body> 
<center><b>My Students</b></center> 
<center> 
<form method="POST"> 
<input type="text" value="John" name ="stName" /> 
<input onclick="connect()" type="button" value="showStudents" /> 
</form> 
</center> 
<center><b>Results</b></center> 
<ul data-role="listview" id="result"></ul> 
</body> 
</html> 

回答

2

serialize表單數據..

改變你的連接功能,可這個

function connect() 
{ 
    $.ajax({ 
     url:'hostname/reply.php', 
     headers:{"Content-Type": "application/json"}, 
     type:'POST', 
     data:$('form').serializeArray(), 
     dataType:'JSON', 
     error:function(jqXHR,text_status,strError){ 
      alert(strError);}, 
     timeout:60000, 
     success:function(data){ 
      $("#result").html(""); 
       for(var i in data){ 
       $("#result").append("<li>"+data[i]+"</li>");      
       } 
      } 
     });  
} 

或者乾脆你可以壓縮你的代碼,這樣的..

function connect() 
{ 
    $.post('hostname/reply.php', $('form').serialize(), function(data){ 
     $("#result").html(""); 
       for(var i in data){ 
       $("#result").append("<li>"+data[i]+"</li>");      
       } 
      } 
    }); 
} 
+0

謝謝阿紫和michaelcurry 。你如何從PHP訪問表單輸入值? – Simon 2014-10-11 08:51:49

+0

我想這個PHP代碼,但它不工作:$ data = json_decode($ _ POST ['data'],true); $ message [] = $ data; \t print json_encode($ message); – Simon 2014-10-11 10:17:21

+0

做一些調試。並在'reply.php'中轉儲'$ _POST' 在'reply.php'中添加這一行並查看頁面正在接收什麼數據'var_dump($ _ POST);退出;' – 2014-10-11 10:20:03