2016-06-26 9 views
0

jsからPHPに変数を渡してみようとしていますが、成功しません。私はすべての同様の質問を読んだが、私は運がなかった。 $ idが javascriptからajaxを使ってphpに変数を渡す

...

$(document).on("click", ".info-button", function() { 

    var myBookId = $(this).data('id'); 
    $(".modal-body .modal-text").text(myBookId); 

    var variableToSend = myBookId; 

    $.ajax({ 
     type: "POST", 
     url: "jsTophp.php", 
     data:{ id : variableToSend }, 
     success: function(data){ 
      console.log(data); 
     } 
    }) 
}); 
を私のポストの要求が受信されていないことを意味 "52" の値を取得して保持し、私のjsTophp.phpファイル:

<?php 
if(isset($_POST['id'])){ 
    $id = $_POST['id']; 
} else { 
    $id = 52; 
} 
?> 

ここではmovies.phpの私のhtmlですあなたのコードは基本的に正しいですので

include 'jsTophp.php'; 

<div class="modal-body"> 
      <div class="row"> 
       <p class="modal-text"></p> 
       <?php 
        $movie = mysqli_query($con, "SELECT * FROM movies WHERE id=$id"); 

        $row = mysqli_fetch_array($movie); 

        echo ' 
        <div class="col-md-4"> 
         <div class="info-image"> 
         <img class="img-responsive" src="'.$row['cover_path'].'" style="width:150px;height:200px;"> 
        </div> 
        </div> 

        <div class="col-md-4"> 
         <h4>Title: '.$row['title'].'</h4> 
         <h4>Director: '.$row['director'].'</h4> 
         <h4>Year: '.$row['d'].'</h4> 
         <h4>Description: '.$row['description'].'</h4> 
         <a href=""><img class="imdb-img" src="images/IMDb-Icon.png" style="width:80px;height:80px;"></a> 
         <a href=""><img class="imdb-img" src="images/youtube_logo.png" style="width:60px;height:40px;"></a> 
        </div> 
       '; ?> 
      </div> 
     </div> 
+1

AJAXリクエストを開始する前に、console.log()にvariableToSendを指定した場合の出力は? – Dragony

+0

Uは、この変数 'variableToSend'を例えば数値で置き換えようとすることができます。次に、あなたのAjaxが正しく動作するかどうかを確認できます。 –

+0

anwsering @Dragonyに感謝します。 variableToSendは、クリックしたhtml要素に応じて値をとります。私は警告(variableToSend)でチェックしています。それは私が欲しいという価値があります... –

答えて

0

ファイル、あなたはあなたの要求が成功した、問題はおそらく誤解の多いことを確認した。

あなたのajaxはPOST requestjsTophp.phpを呼び出しますが、このファイルはあなたの$idで何もしないようです。

は、ファイルを先頭に含めているため、movies.phpに設定すると予想されます。 jsTophp.phpが呼び出された可能性があるので、このスクリプトの実行結果が保持されているわけではないので、movies.phpにアクセスすることができます。あなただけのmovies.phpはこのようになります意味のソースコードを含む、以下のとおりです。

<?php 
if(isset($_POST['id'])){ 
    $id = $_POST['id']; 
} else { 
    $id = 52; 
} 
?> 

<div class="modal-body"> 
    <div class="row"> 
     <p class="modal-text"></p> 
... 

あなたの代わりに何をしたいのか、代わりにあなたのAJAX呼び出しでこのスクリプトを呼び出している:

$.ajax({ 
    type: "POST", 
    url: "movies.php", 
    data:{ id : variableToSend }, 
    success: function(data){ 
     console.log(data); 
    } 
}) 

私が知っています、私の最後から多くの前提がありますが、あなたの質問、コード、コメントはこの結論につながります。うまくいけばそれは問題であり、それはあなたを助けるでしょう。

+0

私はそれを試したことがありません...どちらかといえば、本当にイライラしています:( –

+0

$(this).attr( 'data-id'); – GeorgeKaf

0

私のコードを見てください。私のコードは、あなたが望むのと同じことを行い、期待どおりに動作しています。

HTML

<a onclick="addToCart(this, 1)" href="#!">Click me</a><br> 

JS

function addToCart(elem, pid){ 
var pid = pid; 

$.ajax({ 
    type: "POST", 
    url: "cart_add_product_ajax.php", 
    dataType: 'json', 
    data: { 
      pid:  pid 
      }, 
    success: function(res) { 
     if(res == 1){ 
      location.reload(); 
     }else{ 
      // 
     } 
    } 
}); 
} 

PHP

また
if($_POST){ 
     $pid  = $_POST['pid']; 

     if(mysqli_query($con, "SELECT * FROM movies WHERE id=".$pid)) { 
      echo 1; //success 
     }else{ 
      echo 0; //failure 
     } 
    } 

クロムインスペクタを使用します(エラーがある場合はEX)PHPコード内で何が起こっているかをチェックするために>ネットワーク(タブ)。サーバーから取得した応答をクリックします。例えば、PHPを入力することができます

var_dump($_POST['id']) 

そして、それがインスペクタで返すものを表示します。

希望します。

+0

あなたがPHPでエコーしたものは、 $ .ajaxの成功関数 – Robert

関連する問題