2017-12-03 41 views
1

我完全不熟悉Ajax和jQuery,但是我試圖爲我的網站使用兩個訂閱按鈕。如何使用php,ajax和jQuery製作訂閱按鈕?

現在我已經閱讀了大部分的文檔到Ajax和jQuery,並提出了一個小代碼來做到這一點。

問題是,它不工作,我不能爲我的生活看到爲什麼。

我點擊訂閱按鈕,沒有任何反應:
的subscribe.php腳本不運行,數據庫沒有更新,沒有警報顯示 - 就像我說的...沒有任何反應

希望有人可以幫忙。

代碼到目前爲止
的jquery.js的頁面,訂閱按鈕的頂部

<body> 
// Load official jQuery-library 
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> 
// Load my own jQuery-script file 
<script src="jQuery/jQuery.js"></script> 
. 
. 
. 
// Load all pages (videos.php, channel.php,...) as needed 
</body> 

// Code in my own jQuery.js 
$(document).ready(function(){ 
    "use strict"; 
    $("#subscribe").click(function(subscribeData){ 
     $.ajax({ 
      type: "POST", 
      url:'../scripts/subscribe.php', 
      data:{randomStringUser:subscribeData}, 
      dataType:'json', 
      success:function(data){ 
       alert("You subscribed");// Do what you do after subscribe.php has done it's thing 
       // just to test I just put an alert here 
      }, 
      error:function(){ 
       alert("Didn't work");// Do what you do if mission failed 
       // just to test I just put an alert here 
      } 
     }); 
    }); 
}); 

PHP(在保持在身體標記的開始所有其他網頁的index.php加載)位於(即channel.php)和訂閱按鈕代碼從Ajax的呼叫

<?php 

    . 
    . 
    . 
    $randomStringUser = $_GET['channel']; 
    $subscribeData = json_encode($randomStringUser); 

?> 
// Page html 
. 
. 
. 

// Subscribe-button 
<button type="button" class="btn btn-success" id="subscribe"> 
    Subscribe 
</button> 

subscribe.php

<?php 

    session_start(); 

    $randomStringUser = $_POST['randomStringUser']; 

    // $_SESSION['id'] is set with users-id when user log in 
    // So if user logged in use that id as $subscriberID 
    if (isset ($_SESSION['id'])) { 
     $subscriberID = $_SESSION['id']; 
    } 

    "SELECT id FROM userinfo WHERE randomString = ? LIMIT 1" // using $randomStringUser as ? 

    // Use the id found in SELECT as $subscriptionID 

    "INSERT INTO usersubscription (subscriberID , subscriptionID) VALUES (? , ?)" // Using $subscriberID and $subscriptionID from above as ? 
+0

您可以檢查在谷歌Chrome開發者工具的網絡標籤,看是否請求'../腳本/ subscribe.php'是被製造? ('F12' - >網絡) – Acidic

+0

剛剛做了,沒有請求正在做......非常奇怪的嗯...... – APM

+0

好的,我不得不檢查網絡中的錯誤...所以沒有發送請求,但它會拋出一個「uncaught TypeError :$ .ajax不是一個函數「 – APM

回答

1

$.ajax找不到,因爲您引用的是一個slim版本的jQuery而不是整個庫。

我建議你使用jQuery的完全壓縮版本,這樣你就可以充分發揮它的潛力。

嘗試用以下替換您<script>標籤:

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="crossorigin="anonymous"></script>