我通过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>
任何解决方案?谢谢! 附:当前符号表中的变量确实存在。
答案 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>