1

在 jquery 代码中使用success: 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

如果我了解您想将 php 数组返回给 Jquery 并在那里使用它?

如果是这样 json_encode php 中的数组,然后将其返回给 javascript,那么您应该可以使用它。

于 2012-05-30T11:13:29.137 回答
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 回答
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 回答