我对从Jquery发送数据到php并从中检索数据感到困惑

时间:2013-06-28 12:38:59

标签: jquery json post

这是我的HTML代码

<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.首先,当我点击提交时,它不会检索任何数据并重定向到页面处理的表单操作,返回false不起作用。

2.其次,即使我将表单操作删除到此

<form method="post">

它仍然没有从php脚本中检索任何内容。

3.最后,让我最困惑的是,我不确定我传递给php的数据字段

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

是一个对象类型或json类型,我知道如果密钥被这样的配额包围,它将是json

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

4.这是否意味着如果我发送这样的数据,就没有必要对它进行字符串化,因为它已经是json类型了?

3 个答案:

答案 0 :(得分:0)

使用preventDefault而不是返回false并将其放在开头。

答案 1 :(得分: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;       
    });
});

第二次action

中删除form element后,它会有效

第三次您的两个对象具有相同的含义,因为nametime是关键所以,single or double quotes无关紧要

答案 2 :(得分:0)

试试这个

<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>