如何将当前符号表中的数据放入ajax响应?

时间:2016-08-04 14:05:21

标签: php ajax

我通过AJAX获取数据。当我得到响应时,我想把当前符号表中的变量(我从extract($ this-> args))中的变量放到ajax-response中。 ajax.php类似于:

<div class="modal fade <?php echo $class; ?>" id="<?php echo $id; ?>" tabindex="-1" role="dialog" aria-hidden="true"></div>

因此,ajax.php中的变量应该替换为当前符号表中的变量。 这是我的代码:

private function generate_js( $call_selector, $modal_id ) {
    ob_start();
            extract($this->args);             ?>        
    $("<?php echo $call_selector; ?>").click(function(e){ 
            e.preventDefault();

             if (!jQuery('#<?php echo $modal_id; ?>').length) { 
             jQuery.when(
               jQuery.ajax({
               url: 'ajax.php',
               success: function(response) {
                     jQuery(response).appendTo(jQuery('body'));
                   }
               })).done( function (){
                        jQuery('#<?php echo $modal_id; ?>').modal('show');                                     
                        }); 

            }
            }); 

但不幸的是我只得到:

<div class="modal fade " id tabindex="-1" role="dialog" aria-hidden="true"></div>

任何解决方案?谢谢! 附:当前符号表中的变量确实存在。

1 个答案:

答案 0 :(得分:0)

您不是通过AJAX发送变量 - 因此您没有收到它们。 您应该像这样重写代码:

<?php
private function generate_js( $call_selector, $modal_id ) 
{
  ob_start();
  extract($this->args); ?>        
  $("<?php echo $call_selector; ?>").click(function(e)
  { 
    e.preventDefault();

    if (!jQuery('#<?php echo $modal_id; ?>').length) 
    { 
      jQuery.when(
        jQuery.ajax({
          url: 'ajax.php?id=<?php echo $id; ?>&class=<?php echo $class; ?>',
          success: function(response) 
          {
            jQuery(response).appendTo(jQuery('body'));
          }
        })
      ).done( function (){
        jQuery('#<?php echo $modal_id; ?>').modal('show');                                     
    }); 
  }
}); 

还可以像这样更改 ajax.php

<div class="modal fade <?php echo $_GET['class']; ?>" id="<?php echo $_GET['id']; ?>" tabindex="-1" role="dialog" aria-hidden="true"></div>