[英]Pass JSON with jquery ajax to a variable in PHP
該腳本無法在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
感謝與我一起尋找解決方案。
您有一個雙重json_encode,在發送json之后,您什么都不寫,請嘗試以下操作:
$return = $_POST;
if(isset($return)) {
$return["model_id"] = $return;
echo json_encode($return);
exit;
}
嘗試這個:
if(isset($_POST["model_id"])
{
$json = json_decode($_POST["model_id"]);
echo json_encode($json);
}
確保json值的鍵在“”之間。
有幾件事對我很突出。
$(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
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.