0

私は配列を作成しました$latent_weights_array。「保存」ボタンを押して ajax 経由で PHP スクリプトを実行し、その配列を $_GET 変数として渡したいと思います。

PHPで

<?php
    echo "<input type='button' class='btn'
             onclick='ajaxWeight(".json_encode($latent_weights_array).")' value='Save'/>";
?>  

JavaScriptで

function ajaxWeight(latentweights){
    // trim code here

    var queryString = "?latentweights=" + latentweights;

    ajaxRequest.open("GET", "031instsql.php" + 
                              queryString, true);
    ajaxRequest.send(null);
}

031instsql.php で

<?php
     if (isset($_GET['latentweights'])){
         echo $_GET['latentweights'];
         $kati=array();
         $kati=json_decode($_GET['latentweights'],true);
     }
?>

1.どうしてうまくいかないの?2. ここで何をする必要がありますか?

4

3 に答える 3

0

を使用してこれを実現できますjQuery。これを試して

<?php
    $latent_weights_array = array(1,2,3);
    echo '<input type="button" class="btn" onclick="ajaxWeight('.json_encode($latent_weights_array).')" value="Save"/>';
?> 


<script type="text/javascript">
    function ajaxWeight(latentweights){
        $.ajax({
            type: "GET",
            url: "031instsql.php",
            data: 'latentweights='+latentweights,
            success: function(html){
                alert(html);
            }
       });
    }
</script>

詳しくはこちらをjQuery AJAX お読みください

于 2013-06-23T11:06:29.820 に答える
0

json_encodeは配列定義用の有効な JavaScript コードを生成するため、配列を に渡していますajaxWeight。その中で文字列と連結しようとしていますが、JavaScript は json 化を行いません。JS でJSON 文字列を作成する方法を参照してください。または、操作を実行するために実際の JS オブジェクトが必要ない場合は、php 側で二重にエンコードできます。

json_encode(json_encode($latent_weights_array))

ajaxWeightこのようにして、URL に連結できる文字列を に渡します。

于 2013-06-23T10:58:19.003 に答える
0

JavaScript ajax 呼び出しは次のようになります。

function ajaxWeight(latentweights){
    // trim code here

   xmlhttp.onreadystatechange=function()
   {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      // Deal with response
    }
  }

    var queryString = "?latentweights=" + latentweights;

    xmlhttp.open("GET", "031instsql.php" + queryString, true);
    xmlhttp.send();
}

またはさらに良いのは、jQueryを使用することです

$.getJSON({
      url: "031instsql.php",
      {latentweights: latentweights})
.done(function(result){
 // Deal with result
 })
.fail(function( jqxhr, textStatus, errorResponse) {
    var error = textStatus + ', ' + errorResponse;
    console.log( "Request Failed: " + errorResponse);
 });

$katiPHP からの応答もレンダリングする必要があると思います。

于 2013-06-23T11:01:35.863 に答える