2013-06-28 18 views
0

這裏是我的HTML代碼我越來越從jQuery的將數據發送到PHP的困惑和檢索數據

<form action="http://localhost/xiuno" method="post"> 
    <h1>TEST</h1><br/> 
    <input type="submit" value="submit" id="submit"/> 
</form> 

<script type="text/javascript"> 
$(function(){ 
    $("#submit").click(function(){ 
     $.post("test12.php", { name: "John", time: "2pm" }).done(function(data) { 
     alert("Data Loaded: " + data); 
     }); 
     return false;  
    }); 
}); 
</script> 

這裏是我的PHP代碼

<?php 
$a = $_POST['name']; 
echo $a; 

1.Firstly,當我點擊提交,它不檢索任何數據並重定向到頁面表單動作混淆,返回false不起作用。

2.Secondly,即使我刪除表單動作爲這個

<form method="post"> 

它仍然沒有檢索來自PHP腳本什麼。

3.Lastly,有什麼困惑最深的是,我不知道數據字段我傳遞到PHP

{ name: "John", time: "2pm" } 

是作爲一個對象類型或JSON類型,我知道這將是JSON如果密鑰是由配額這樣

{ "name": "John", "time": "2pm" } 

是否清晰可辨意思,如果我發送的數據那樣封閉的,沒有必要給它字符串化事業已經是作爲JSON類型的?

+0

是否在控制檯顯示了語法錯誤或其他錯誤(你確定你裝的jQuery)? 'JSON'是像'xml'這樣的數據表示。對於JavaScript編寫'{「name」:「John」,「time」:「2pm」}或'{name:「John」,time:「2pm」}'幾乎是一樣的,除了使用引號可以使用如果不使用引號就不能使用的使用密鑰,例如'{「name 2」:「test」}'。所以'''不,它不是'json'類型,但是jQuery爲編碼做了必要的步驟。 –

+0

使用jquery.ajax我認爲這樣更好,所以在php和javascript之間交換數據 – softsdev

+0

@softsdev'post','get','ajax'和'getJSON'在內部使用相同的代碼和不同的默認選項,所以沒有區別,使用'jQuery.post'或'jQuery.ajax'和post選項。 –

回答

0

使用preventDefault而不是返回false並將其放入開始位置。

+0

使用'return false'是'preventDefault' +'stopPropagation '所以它不應該有任何區別。 –

0

對於第一

試試這個,

$(function(){ 
    $("#submit").on('click',function(e){ 
     e.preventDefault(); 
     $.post("test12.php", { name: "John", time: "2pm" }).done(function(data) { 
     alert("Data Loaded: " + data); 
     }); 
     return false;  
    }); 
}); 

將移除actionform element

你的兩個對象後工作具有相同的意義,因爲nametime是關鍵所以,沒有馬的single or double quotes

+0

只要在執行'click'callback時沒有錯誤發生,如果你在開始處有'preventDefault',這個代碼就沒有區別。 –

+0

這段代碼也沒有工作,它的行爲與我的代碼一樣。 – user7031

0

tters試試這個

<script type="text/javascript"> 
$(function(){ 
    $("form").submit(function() { 
     $.post("test12.php", { name: "John", time: "2pm" }).done(function(data) { 
     alert("Data Loaded: " + data); 
     });  
return false; 
     }); 
    }); 
    </script> 
+0

如果在那裏定義了一個'action =',它將以默認方式提交表單。因爲您在該事件中既沒有'return false'也沒有'preventDefault'。 –

+0

我忘記了,謝謝 – FLF