Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onClick-echo-PHP代码到div(AJAX)_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript onClick-echo-PHP代码到div(AJAX)

Javascript onClick-echo-PHP代码到div(AJAX),javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,所以我想做的是: 第一:单击按钮addlocation时,将使用AJAX加载一个php文件 jQuery $('.add-location').click(function() { var locationName = $(this).data('location'); $.post('http://www.example.com/reload-location-2.php?addparam', {locationName: loc

所以我想做的是:

第一:单击按钮
addlocation
时,将使用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;?>
或者,如果加载页面时更容易,则->将该代码回显到
textarea\thema
div

我不太懂AJAX,但我正在努力。但我认为最后一个选择可能是最简单的解决方案

有人能帮我弄清楚这个吗


我尝试的

现在,当单击按钮
addlocation
时,我会重新加载以前的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);
        })
    });
这是可行的,但它添加了一个额外的
-标记,使我在代码中有一个换行符

我还更改了
.html(数据)
.val(数据)用于文本区域。我还用以下代码创建了一个新的PHP文件:

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

但还是不行。。。我不认为这是一条路要走??我希望我提供了足够的信息。

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

不@胡洛斯。使用
.val()时,换行符仍然存在你确定断线不是你回音的“\n”吗?@Cruiser,Jeeezzz我觉得很愚蠢!我制作了reload-3,因此它没有使用
“\n”
,现在换行符消失了。也许这也与
.val()有关而不是
.html()。好的,谢谢你。
<?php foreach ($_SESSION['products'] as $product): ?>
    <?php echo htmlspecialchars($product); echo "\n"; ?>
<?php endforeach;?>
 $('.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);
            })
        });