如何从PHP到jQuery显示参数?

时间:2012-05-30 11:08:54

标签: php jquery ajax

在jquery代码中使用success: function(data),当我从PHP检索数据时,我无法在jQuery代码中显示参数str"=>$dataString

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>

3 个答案:

答案 0 :(得分:1)

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

如果是这样json_encode在php中的数组然后将其返回到javascript,那么你应该能够使用它。

答案 1 :(得分: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);
       }
    });

答案 2 :(得分: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);