1

jquerysuccess: function(data)コードで使用して、PHP からデータを取得するstr"=>$dataStringと、jQuery コードでパラメーターを表示できません。

success: function(data) {
    alert(data[0]);
    $("#display").html(data[str]);
}

ajax.php:

<?php
  if (isset($_POST['dataString'])) {
    $dataString=$_POST['dataString'];
    echo (array("str"=>$dataString));
  } else {$_POST['dataString']="";}
?>

    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="./public/stylesheets/stylesheets.css"  >
    <script type="text/javascript" src="./public/js/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" >
    $(document).ready(function() {
      var dataString;
      $("#valueforajax").blur(function() {
        dataString = $.trim(this.value);
        if (dataString){
        // until here it works
          $.ajax({
            type: "POST",
            dataType: 'html',
            url: "ajax.php",
            data: 'dataString=' + dataString,
            //{"dataString": dataString}
            cache: false,
            success: function(data) {
              alert(data[0]);
              $("#display").html(data[str]);
            }
          });
        }
      });
    });
  </script>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
  <title>mange panel</title>
  </head>
  <body>
    <br>Type value for test in ajax<input id="valueforajax" type=text name='ajaxtest'>
    <div id="display">show</div>
  </body>
</html>
4

3 に答える 3

1

ajax.php

<?php
  if (isset($_POST['dataString'])) {
     echo $_POST['dataString'];
     exit(0);  //this will supress html output
  }
  else {
   //do nothing
  }
?>

 $.ajax({
    type: "POST",
    dataType: 'html',
    url: "ajax.php",
    data: 'dataString=' + dataString, //{"dataString": dataString}
    cache: false,
    success: function(data)
    {
       alert(data);
       $("#display").html(data);
       }
    });
于 2012-05-30T11:25:22.137 に答える
1

php 配列を Jquery に返して、そこで操作したいということでしょうか。

その場合、配列をphpでjson_encodeしてからjavascriptに返すと、それを操作できるはずです。

于 2012-05-30T11:13:29.137 に答える
0

サーバーからの応答は、json 文字列または単なる文字列である必要があると思います。

<?php
   if (isset($_POST['dataString'])) {
     $dataString=$_POST['dataString'];
     echo json_encode(array("str"=>$dataString));
     exit(0);
    }
     else {
        echo json_encode(array("str"=>""));
        exit(0); //you don't want rest of html in respose too.
    }

?>

そして成功に

var obj = jQuery.parseJSON(data);
alert( obj.str);
于 2012-05-30T11:21:51.847 に答える