2017-12-03 17 views
1

AjaxとjQueryについては全く新しいものですが、私は両方を使って自分のサイトの購読ボタンを作ろうとしています。php、ajax、jQueryを使ってサブスクライブボタンを作る方法は?

私はAjaxとjQueryにほとんどのドキュメントを読んで、ちょっとしたコードを思いついただけです。

問題は、それが動作していないと私は私の人生の理由については見ることができないということです。

私はボタンをクリックしても何も起こら購読:
subscribe.phpスクリプトが実行されないと、データベースが更新されず、警告が表示されていない - 私が言ったように...何も

希望を起こりません誰かが助けることができます。

コードこれまでボタンを購読ページの一番上に

<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にロードされた)
jQuery.js (すなわち。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

あなたは '../スクリプト/ subscribe.php'への要求があるかどうかを確認するには、Google Chromeデベロッパーツールで[ネットワーク]タブをチェックすることができています作られている? ( 'F12' - > Network) – Acidic

+0

ちょうどして、リクエストが行われていません...非常に奇妙なhmmm ... – APM

+0

okネットワークでエラーをチェックしなければならなかったので、リクエストは送信されませんが、" catchされないTypeError :$ .ajaxは関数ではありません " – APM

答えて

1

$.ajaxは、スリムのライブラリ全体ではなく、jQueryのバージョンを参照しているため、見つかりませんでした。

jQueryの完全に縮小されたバージョンを使用することをお勧めします。そうすれば、それを最大限に活用することができます。

は、以下を使用して<script>タグを交換してみてください:

<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="crossorigin="anonymous"></script> 
関連する問題