Jquery Ajax不进行更改

Jquery Ajax不进行更改,jquery,ajax,Jquery,Ajax,我正在阅读一本关于PHP和jQuery的书,我遇到了Ajax的一个问题,因为它不会发布和显示更改 <head> <meta charset="utf-8" /> <title>Testing jQuery</title> </head> <body> <p>Hello World!</p> <p class="foo">Another paragra

我正在阅读一本关于PHP和jQuery的书,我遇到了Ajax的一个问题,因为它不会发布和显示更改

    <head>
    <meta charset="utf-8" />
    <title>Testing jQuery</title>
</head>
<body>
    <p>Hello World!</p>
    <p class="foo">Another paragraph, but this one ahs a class.</p>
    <p><span>This is a span in a paragraph</span></p>
    <p id="bar">Paragraph with an id.
        <span class="foo">And this is a sentence in a span</span>
    </p>
    <script src="jquery.validate.min.js"></script>
    <script src="jquery/ajax.js"></script>
    <script src="jquery/jquery-1.8.3.min.js"></script>

    <form action="#" method="post">
        <fieldset>
            <legend>Sign Up Form</legend>
            <label for="name">Name</label><br/>
            <input name="name" id="name" type="text" /><br/>
            <label for="password">Password</label><br/>
            <input name="password" id="password"
                   type="password" /><br/>
            <label>
                <input id="mycomp" type="radio" name="loc" />
                I'm on my computer.
            </label><br/>
            <label>
                <input id="shared" type="radio" name="loc" checked="checked" />
                I'm on my shared computer.
            </label>
            <input type="submit" value="Log In" /><br/>
            <label>
                <input id="signedin" type="checkbox" name="notify"
                       disabled="true"/>
                Keep me signed in on this computer.
            </label><br/>
        </fieldset>
    </form>

</body>
</html>

我正在通过firebug控制台运行它,它似乎运行正常,但实际上什么都没有发生。

好吧,我试着解释一下。 首先,当您想要使用ajax发送表单时,您不需要使用submit和标记的属性。您将函数分配给按钮或元素以提交表单,例如,此函数调用ajax

使用html,Jquery代码如下:

$('input[type=submit]').click(submitForm);
function submitForm(){
$.ajax({
   "type":"POST",
   "url":"ajax.php",
   "data":"var1=val1&var2=val2",
   "success":function(data){
       $("#bar")
       .css("background","yellow")
       .html(data);
   }
 });
}
如果您发送POST,则必须发送数组中的变量或类似的内容:

"data": {
   var1:val1,
   var2:val2
 }
$('input[type=submit]').click(submitForm);
function submitForm(){
$.ajax({
  "type":"POST",
  "url":"ajax.php",
  "data": {
       var1:val1,
       var2:val2
     },
  "success":function(data){
    $("#bar")
    .css("background","yellow")
    .html(data);
  }
});
}
您可以在ajax.php中的$_POST[var1]和$_POST[var2]中接收到

因此,您的javascript/Jquery代码如下所示:

"data": {
   var1:val1,
   var2:val2
 }
$('input[type=submit]').click(submitForm);
function submitForm(){
$.ajax({
  "type":"POST",
  "url":"ajax.php",
  "data": {
       var1:val1,
       var2:val2
     },
  "success":function(data){
    $("#bar")
    .css("background","yellow")
    .html(data);
  }
});
}

如果你有任何问题,告诉我。我希望这对您有用。

我看不到任何东西会导致success函数不更新#bar元素。你确定电话成功了吗?尝试添加一个“error”函数,看看是否调用了该函数。定义“nothing is beging”。你说你在用Firebug调试这个?当您单步执行每一行代码时,它在哪里失败?是否发出了预期的网络请求?服务器的响应是什么?jQuery选择器是否找到您希望它找到的元素?等等,你的php文件里有什么?你从那里返回了什么吗?它没有抛出错误,我不知道为什么它不会修改它。失败时AJAX调用不应该抛出错误。遵循@Tyler的建议。AJAX Post数据可以使用查询字符串生成,它不需要是对象。是的,但是发送一个字符串,就像GET请愿一样。我想