繁体   English   中英

onClick将PHP代码回显到div(AJAX)

[英]onClick echo PHP code to div (AJAX)

所以我想做的是以下几点:

第一:单击按钮add-location时, add-location使用AJAX加载php文件。

jQuery的

$('.add-location').click(function() {
        var locationName = $(this).data('location');
            $.post('http://www.example.com/reload-location-2.php?addparam',
            {locationName: locationName}, function(data) {
                $("textarea#location").html(data);
        })
    });

PHP文件

<?php start_session();
$locationName = array_key_exists('locationName', 
$_POST) ? (string) $_POST['locationName'] : '';

   if(isset($_GET['delparam'])){
       unset($_SESSION['locations'][$locationName]);
   }

   if(isset($_GET['addparam'])){
    $_SESSION['locations'][$locationName] = $locationName;
   }
?>

<?php foreach ($_SESSION['locations'] as $location): ?>
<?php echo htmlspecialchars($location); echo "\n"; ?>
<?php endforeach;?>

这一切都像一个魅力! 这里不用担心。 没有我要做的事情是,当单击按钮add-location时,此echo's将以下代码传递给称为textarea#themadiv

<?php foreach ($_SESSION['products'] as $product): ?>
    <?php echo htmlspecialchars($product); echo "\n"; ?>
<?php endforeach;?>

或者,如果在加载页面时更容易->将该代码回显到textarea#thema div。

我对AJAX的了解不多,但我能到达那里。 但是我认为最后一个选择也许是最简单的解决方案?

谁能帮我解决这个问题?


我尝试了什么

现在,当单击按钮add-location ,我会重新加载以前的jQuery脚本:

$('.add-location').click(function() {
        var productName = $(this).data('product');
            $.post('http://example.com/reload-2.php?addparam',
            {productName: productName}, function(data) {
                $("textarea#thema").html(data);
        })
    });

这行得通,但是它添加了一个额外的<p> -tag,使我在代码中出现了换行符。

我还更改了.html(data); .val(data); 用于textareas。 我也用下面的代码制作了一个新的PHP文件:

<?php foreach ($_SESSION['products'] as $product): ?>
    <?php echo htmlspecialchars($product); echo "\n"; ?>
<?php endforeach;?>

和这个jQuery代码:

 $('.add-location').click(function() {
            var productName = $(this).data('product');
                $.post('http://www.example.com/reload-3.php', 
                {productName: productName}, function(data) {
                   $("textarea#thema").val(data);
            })
        });

但是仍然没有走……而且我不认为这是要走的路?? 我希望我能提供足够的信息。

您应该使用.val()函数填充文本区域,而不是.html()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM