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 ?
您可以檢查在谷歌Chrome開發者工具的網絡標籤,看是否請求'../腳本/ subscribe.php'是被製造? ('F12' - >網絡) – Acidic
剛剛做了,沒有請求正在做......非常奇怪的嗯...... – APM
好的,我不得不檢查網絡中的錯誤...所以沒有發送請求,但它會拋出一個「uncaught TypeError :$ .ajax不是一個函數「 – APM