2017-03-21 16 views
0

私はワードプレスで星評価システムを構築しており、評価データをワードプレスデータベースに保存したいと考えています。 私はワードプレスのテーマフォルダにテンプレートとして星の評価phpを保存しています。ここにコードの一部です。phpにjavascript変数を渡して、wordpressのデータベースに格納する方法はありますか?

<?php 
/* Template Name: RatingSystem */ 
?> 

<html>for displaying the stars</html> 

<css>for hover and other star rating effects</css> 

<script> 
var r1; 
var r2; 
function submitForm() { 
$.ajax({ 
     type: "POST", 
     url: 'submit-rating.php', 
     data: { r1 : r1 }, 
     success: function(data) 
      { 
      alert("success!"); 
      } 
      }); 
         } 
function RatingValue(rating) 
{r1=rating;}  

function RatingValue1(rating1) 
{r2=rating1;} 
</script> 

submit-rating.php(PHPファイル)。

<?php 
if(isset($_POST['r1'])) 
{ 
$rating = $_POST['r1']; 
echo $rating; 
} 
?> 

しかし、私は何も出力を評価しない$をエコー行うdisplayed.Whyているのですか?また、事前にワードプレスdatabase.Thanksに格納する方法を説明してください。

答えて

0

JSは表示する必要があることを「認識」していないため、出力が表示されません。代わりに

function submitForm() { 
    $.ajax({ 
     type: "POST", 
     url: 'submit-rating.php', 
     data: { r1 : r1 }, 
     success: function(data) 
     { 
      alert("success!"); 
     } 
    });       
} 

の はfunction(data)dataはJSが得る応答である

function submitForm() { 
    $.ajax({ 
     type: "POST", 
     url: 'submit-rating.php', 
     data: { r1 : r1 }, 
     success: function(data) 
     { 
      alert(data); 
     } 
    });       
} 

を試してみてください。 divに表示するには、alertの部分に$('#divID').html(data)と入力します。

- 編集:質問の第2部分を忘れてしまった。

あなたのワードプレスデータベースにデータを投稿するのにWPDBを使用することをお勧めします。これは、このPHPファイルがテンプレートの一部である場合、またはそのファイルのテンプレートエンジンをオフにしてwp_load.phpが必要な場合に可能です。これらのいずれも適用した場合、私はあなたのPHPファイルの先頭

// Include WordPress 
define('WP_USE_THEMES', false); 
require_once('PATH/TO/wp-load.php'); 

WPDBの情報とどのように使用することがhereを見つけることができるでこれを含めることによって、あなたは後者を行うことをお勧めします。

+0

アラート(「成功!」)をアラート(データ)に置き換えましたが、関数が呼び出されたときにアラートが表示されません。なぜですか?また、データベースクエリを内部に挿入したいsubmit-rating.php(これは、同じテーマフォルダにある別のPHPファイルです)。 – codewiz

+0

また、このすべてを知るための良い情報源を与えることができます(特にjavascript変数を別のPHPファイルに渡すためのAjaxについて)。 – codewiz

+0

コンソールにエラーが表示されますか(Ctrl + Shift +クロームのI)?問題はURLかもしれないと思います。 ''/path/to/theme/submit-rating.php''を試してみてください。 ソースに関しては、私は[リンク](https://webdesignerhut.com/pass-data-with-ajax-to-a-php-file/)がそれを非常にうまくまとめていると信じています。 – Stormhammer

関連する問題