2017-12-10 16 views
0

このスクリプトでは、PHPの変数にデータを渡すことはできません。jquery ajaxを使用してJSONをPHPの変数に渡す

script.js私と一緒に解決策を見つけるため

$(document).on('click', '.variant_model', function(){ 
    var model_id = this.id; 
    $.ajax({ 
     type: "POST", 
     url: "http://www.mod-fusion.fr/console", 
     //dataType: 'json', 
     data: {"model_id":model_id}, 
     success: function(){ 
      $('#result').html(model_id); // work fine 
     } 
    }); 
}); 

script.php

echo '<li> 
    <a href="#" id="'.$v['modelId'].'" class="variant_model"> 
     <span class="'.$v['brand_name'].'_text">'.$v['model_name'].'</span</a> 
    </li>'; 

$return = $_POST; 
if(isset($return)){ 
    $return["model_id"] = json_encode($return); 
    echo json_encode($return); // doesn't work, it return {"model_id":"[]"} 
} 
echo'<div id="result"></div>'; // work fine 

感謝の。

+1

何がうまくいかないのですか?何を期待していたのですか?あなたはそれを解決しようとしましたか?この質問の意味は何ですか?生活?大宇宙? – IncredibleHat

+0

@nadir "this.id"とは何ですか?定義されているかどうかチェックしましたか? – Rajat

+0

"this.id"は、 "variant_model"内のidの値です。 私は "model_id"を知っています。成功はうまくいくので大丈夫です。 –

答えて

0

あなたは二重のjson_encodeを持っているし、送信JSON後にこれをしようと、他には何も書きません。

$return = $_POST; 
if(isset($return)) {  
    $return["model_id"] = $return; 
    echo json_encode($return); 
    exit; 
} 
+0

あなたの助けを必要としますが、うまくいきません。私はまだ{"model_id":[]}を持っています –

+0

PHPスクリプトの期待される動作 –

0

はこれを試してみてください:

if(isset($_POST["model_id"]) 
{ 
    $json = json_decode($_POST["model_id"]); 
    echo json_encode($json); 
} 

JSON値のキーていることを確認してください「」の間にあります。

0

すぐに私に目立つものがいくつかあります。

$(document).on('click', '.variant_model', function(){ 

は、ドキュメント上のクリックイベントを追跡したくない

$('.variant_model').on('click', function(){ 

であるべきであり、それは悪い習慣です。 https://javascript.info/bubbling-and-capturing

また、var model_id = this.id;は値を返します。 console.log(model_id);でこれを行うことができます。

あなたのPHPコードには値も渡していません。次のようになります。

$return = $_POST; 
if(isset($return['model_id'])) 
{ 
    //$return["model_id"] = json_encode($return); 
    echo json_encode($return['model_id']); // doesn't work, it return {"model_id":"[]"} 
} 
echo'<div id="result"></div>'; // work fine 

編集;これも忘れました:

$.ajax({ 
     type: "POST", 
     url: "http://www.mod-fusion.fr/console", 
     //dataType: 'json', 
     data: {"model_id":model_id}, 
     success: function(data){ 
      $('#result').html(data); // work fine 
     } 
    });