为什么我的表单没有使用ajax提交

时间:2014-04-25 22:10:53

标签: javascript php ajax

有点自私的问题,但我总是非常喜欢ajax,所以我需要一些帮助。所以基本上我试图使用' onblur'更新和sql数据库。功能。继承我的代码:

index.php上的代码

   function saveStatus(){
var status =document.getElementById("statusForm").value;
$.ajax({
                url: 'saveStatus.php',
                type: 'post',
                data: 'feed_id=' + status,
                success: function(result){
                }
              }    
    <form id="statusUpdate" action = "whosout.php" method="post"> 
        <input type="text" id="statusForm" onblur="saveStatus()" 
        placeholder="<?php if($status!=null){ echo '&lsquo;'.$status.'&rsquo;';}
        else { echo 'Enter your status here.';}?>"> 
        </form>

和saveStatus.php上的代码

    <?
     require 'core.php';
     require 'connect.php';

      $status = $_POST['feed_id'];
      $idPerson = $_SESSION['user_id'];
      $query = "UPDATE person SET status = '".mysql_real_escape_string($status)."' 
     WHERE idPerson = '$idPerson'"; 
    $query_run = mysql_query($query);
     ?>

当我点击输入框时,sql数据库没有更新。任何帮助都会很棒!!

1 个答案:

答案 0 :(得分:5)

<强>答案:

  1. 您必须设置脚本和html输出
  2. 您忘了);。您必须关闭$.ajax阻止。
  3. 您错过了}结束函数saveStatus()
  4. 代码:

    <script>
    function saveStatus(){
        var status =document.getElementById("statusForm").value;
        $.ajax({
            url: 'saveStatus.php',
            type: 'post',
            data: 'feed_id=' + status,
            success: function(result){
    
            }
        }); // <-- Also, you forget `);` here 
    } // <-- Also, you foget closing `}` here
    </script>
    
    <form id="statusUpdate" action = "whosout.php" method="post"> 
    <input type="text" id="statusForm" onblur="saveStatus()" 
    placeholder="<?php if($status!=null){ echo '&lsquo;'.$status.'&rsquo;';}
    else { echo 'Enter your status here.';}?>"> 
    </form>
    

    没有错误,但建议:

    另外,请注意:您使用了jQuery ajax函数,因此在其他情况下也使用jQuery(您使用的是纯JavaScript)。

    你以这种方式获得价值:

    var status = document.getElementById("statusForm").value;
    

    改为使用jQuery语法:

    var status = $("#statusForm").val();
    

    其他信息

    正如,@ Utkanos在评论中注意到这个答案:

      

    ...如果您查看错误控制台,所有这些都很明显。

    您必须使用一些调试工具,例如FireBug或DevTools(Chrome,也可以在Chrome中使用CTRL + SHIFT + J)。不必。你必须这样做。