2016-08-14 4 views
1

私はかなり失われています、私がしたいのは、私のJavaScriptコードに配列を費やすことです。私は多くの例を見てきましたが、どれも私の仕事を終わらせません。助けが必要です。私はかなり固執している。JSへのPHP配列

functions.js

function cargaTemperatura(idsem){ 
 
    $.ajax({ 
 
     type: "POST", 
 
     url: "load_temp.php", 
 
     data: { idsem : idsem }, 
 
     dataType: "json", 
 
     success: function(data){ 
 
      alert(JSON.parse(data)); 
 
     },error: function(data){ 
 
      alert('error'); 
 
     } 
 
    }); 
 
};

load_temp.php

<?php 
 
include_once 'Includes/db.php'; 
 
$select = "SELECT * FROM CalTmp WHERE idsem='".$_POST['id_sem']."'"; 
 
$result = mysqli_query($link, $select) or die($select); 
 
$array = mysqli_fetch_all($result,MYSQLI_ASSOC); 
 
debug_to_console($result->num_rows); 
 
debug_to_console($_POST['id_sem']); 
 
echo json_encode($array);

+1

'id_sem' =' idsem' –

+0

警告:!あなたのコードは*大きく開い*にある** SQLインジェクション攻撃**。 – David

答えて

1

私の提案:
- ステップ1:でload_temp.php。ハードコードidsem値。ブラウザを確認してください。 JSON文字列
が持っていることを確認します - 手順2:

解決
<?php 
0

header("Content-type: application/json"); 

この行を追加しますが!

私はMooToolsライブラリで解決しました。私の最終的なコードは次のとおりです。

Functions.js

function cargaTemperatura(idsem){ 
 
    var idsemJSON = JSON.encode(idsem); 
 
    alert(idsemJSON); 
 
    var miAjax = new Request({ 
 
     url: "carga_temp.php", 
 
     data: "idsem=" + idsemJSON, 
 
     onSuccess: function(data){ 
 
      alert(data); 
 
     }, 
 
     onFailure: function(){ 
 
      $('resultado').set("html", "fallo en la conexion Ajax"); 
 
     } 
 
    }); 
 
    miAjax.send(); 
 
};

load_temp.php

<?php 
 
$misDatosJSON = json_decode($_POST["idsem"]); 
 

 
include_once 'Includes/db.php'; 
 
$select = "SELECT * FROM CalTmp WHERE idsem='".$misDatosJSON."'"; 
 
$result = mysqli_query($link, $select) or die($select); 
 
$array = mysqli_fetch_all($result); 
 
debug_to_console($result->num_rows); 
 
debug_to_console($_POST['id_sem']); 
 
echo json_encode($array);

I

誰かが役に立つと願っています。 間違いなく、JSON形式ではない変数を送信していました。

おかげで、

関連する問題