2017-03-02 36 views
0

我有一個通過ajax將用戶信息發送到php文件的表單,該表單位於引導模式。我試圖增加一個額外的領域,看看它是否更好地適合目的,但決定在該領域完美的形式工作之前擺脫它。現在ajax不會將信息發送到我的php文件。我在開發人員工具中收到「Uncaught TypeError:$ .ajax不是函數」的通知。我的代碼中有錯誤嗎?

FORM:

<?php 

    include_once("php_includes/check_login_status.php"); 
    include_once("php_parsers/functions.php"); 
    ?> 
    <!DOCTYPE html> 
     <html> 
    <head><meta http-equiv="Content-Type" content="text/html; charset=gb18030"> 

    <title> <?php echo $u; ?></title> 


    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.3/css/bootstrap.min.css" integrity="sha384-MIwDKRSSImVFAZCVLtU0LMDdON6KVCrZHyVQQj6e8wIEJkW4tvwqXrbMIya1vriY" crossorigin="anonymous"> 
    <link href="toolkit.css" rel="stylesheet"> 
    <link href="home.css" rel="stylesheet"> 



    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> 

    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script> 

    <script src="js/main.js"></script> 
    <script src="js/ajax.js"></script> 

     <script src="js/profile_edit.js"></script> 

     <script src="js/join.js"></script> 
     </head> 
     <body> 

     <div class="panel-body"> 
     <h5 class="m-t-0">About <?php 
     if ($isOwner == "yes"){ 
     echo '<small><a href="#" class="editlink" data-toggle="modal" data-target="#participantModal">Edit</a></small>'; 

     } ?></h5> 
     <ul class="list-unstyled list-spaced"> 
     <li id="city" class="datainfo">City: <a href="#"> 
     <?php 
     if($city == ""){ 

     echo "Needs to be updated"; 
     } else { 
     echo "$city";} 
     ?> 
     </a> 
     <li id="state" class="datainfo">State: <a href="#"> 
     <?php 
     if($state == ""){ 

     echo "Needs to be updated"; 
     } else { 
     echo "$state";} 
     ?> 
     </a> 
     <li id="FavoriteSport" class="datainfo">Favorite Sport: <a href="#"> 
     <?php 
     if($favoriteSport == ""){ 

     $favoriteSport = "Needs to be updated"; 
     } 
     echo $favoriteSport; 
     ?> 
     </a> 
     <li id="participation" class="datainfo">Has participated in sport above: <a href="#"> 
     <?php 
     if($participation == ""){ 

     $participation = "Needs to be updated"; 
     } 
     echo $participation; 
     ?> 
     </a> 


     </ul> 
     </div> 
     </div> 

     <?php include_once("template_pageBottom.php"); ?> 

     <script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script> 
     <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> 
     <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script> 


     <!-- Modal --> 
     <div class="modal fade" id="participantModal" tabindex="-1" role="dialog" aria-labelledby="participantModalLabel" aria-hidden="true"> 
     <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 
      <span aria-hidden="true">&times;</span> 
    </button> 
      <h4 class="modal-title" id="participantModalLabel">Updating About</h4> 
    </div> 
      <div class="modal-body"> 
      <form id="aboutForm"> 
      <div class="form-group"> 
      <label for="updatedCity">City:</label> 
      <input type="text" class="form-control" id="updatedCity" aria-describedby="updatedCity" placeholder="<?php if($city == ""){ 
      $city = "What city are you in?"; 
      } echo $city;?>"> 

      </div> 
      <div class="form-group"> 
      <label for="updatedState">State:</label> 
       <input type="text" class="form-control" id="updatedState" placeholder="<?php if($state == ""){ 
      $state = "What state are you in?"; 
      } echo $state;?>"> 
      </div> 
      <div class="form-group"> 
      <label for="sportSelect">Which sport do you like?</label> 
      <select class="form-control" id="sportSelect"> 
      <option value="">Select sport</option> 
      <option value="Basketball">Basketball</option> 
      <option value="Baseball">Baseball</option> 

      </select> 
      </div> 
      <div class="form-group"> 
      <label for="playedSelect">Have you played this sport before?</label> 
      <select class="form-control" id="playedSelect"> 
       <option value="">Select participation status</option> 
       <option value="Yes">Yes</option> 
       <option value="No">No</option> 

       </select> 
       </div> 
    <input type="hidden" class="form-control" id="usernameSubmitting" value="<?php echo $u; ?>"> 
     <div class="alert alert-success" id="successAlert" role="alert" style="display: none"></div> 
     <div class="alert alert-danger" id="updateFail" style="display:none" ></div> 
     <div class="alert alert-warning" id="warningAlert" role="alert" style="display: none"></div> 
      </form> 
      </div> 
      <div class="modal-footer"> 
      <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> 
      <button type="button" class="btn btn-primary" onClick="about()">Save changes</button> 
      </div> 
      </div> 
     </div> 

AJAX:

function about(){ 
     var updatedCity = $("#updatedCity").val(); 
     var updatedState = $("#updatedState").val(); 
     var x = document.getElementById("playedSelect"); 
     var playedSelect = x.options[x.selectedIndex].value; 
     var p = document.getElementById("sportSelect"); 
     var sportSelect = p.options[p.selectedIndex].value; 
     var usernameSubmitting = $("#usernameSubmitting").val(); 
      var aboutForm = document.getElementById("aboutForm"); 
    $.ajax({ 
    url: "../php_parsers/updateabout_parse.php", 
    type: "POST", 
    data: { 
    updatedCity: $("#updatedCity").val(), 
    updatedState: $("#updatedState").val(), 
    sportSelect: $("#sportSelect").val(), 
    playedSelect: $("#playedSelect").val(), 
    usernameSubmitting: $("#usernameSubmitting").val() 

      } 
     }).done(function(result) { 
      if (result == "success") { 
     $("#successAlert").html("Update successful").show(); 

     } else { 
      $("#updateFail").html(result).show(); 
     } 
      }) 

      $('#participantModal').on('hide.bs.modal', function (e) { 
      if(updatedCity != ""){ 
      $("#city").html('City: <a href="#"> ' + updatedCity + '</a>'); 
      } 
      if(updatedState != ""){ 
      $("#state").html('State: <a href="#"> ' + updatedState + '</a>'); 
      } 
      if(playedSelect != ""){ 
      $("#participation").html('Has participated in sport above: <a href="#"> ' + playedSelect + '</a>'); 
      } 
      if(sportSelect != ""){ 
      $("#FavoriteSport").html('Favorite Sport: <a href="#"> ' + sportSelect + '</a>'); 
} 

     $("#successAlert, #updateFail, #warningAlert").hide(); 
     aboutForm.reset(); 

      }); 
      } 

PHP:

<?php 
    ini_set('display_errors', 1); 
    ini_set('display_startup_errors', 1); 
    error_reporting(E_ALL); 

     include_once("../php_includes/db_conx.php"); 
     $city = ""; 
     $error = ""; 
     $u = ""; 
     $state = ""; 
     $sportSelect = ""; 
     $playedSelect = ""; 

    $u = mysqli_real_escape_string($db_conx, $_POST['usernameSubmitting']); 

     if(!$_POST['updatedCity'] && !$_POST['updatedState'] && !$_POST['sportSelect'] && !$_POST['playedSelect']){ 
     $error .= "No information was entered"; 
     echo $error; 

      }else{ 
      echo "success"; 

      } 
      ?> 
+0

您正在加載jQuery頂部的jQuery-slim,從而刪除'$ .ajax'。不要這樣做 – Phil

+0

如果沒有jQuery-slim我的模態馬上隱藏發射是否有替代這個? – Ace

+0

Ace

回答

0

當我有這個問題,我發現我的jQuery包含兩次。

檢查您的呈現HTML並確保jQuery只包含一次,它會解決它。

相關問題