0

我在一个<textarea>用 CSS 设置样式的页面中间有一个。我在下面有一个输入框。我希望使用 ajax 将来自第二个框的用户输入发送到同一个文件,然后在文件顶部的一些逻辑来获取输入并将一些内容回显<textarea>,而不返回任何其他内容。目前正在发生的事情是 textarea 正在填充页面的 HTML。有人帮忙吗?

4

4 回答 4

0

如果您希望文本区域中的文本被输入框中的文本附加到然后

  1. 将文本与 html 代码分开
  2. 使用 php 将文件中的初始文本加载到 textarea ( file_get_contents)
  3. 使用 ajax 将输入框中的文本发送到脚本,该脚本更新文本文件并在追加后返回文件文本
  4. 使用 javascript 将 textareas 值设置为 ajax 调用的结果
于 2013-05-31T18:07:42.150 回答
0

如果您的页面和 AJAX 处理程序是一回事,那么您需要一些东西来区分这两种“模式”,以便页面能够正常运行。

对于 AJAX 请求,您希望返回(输出)特定内容,而不是页面源代码。这是一个简单的方法:

<?php
if (isset($_POST['input'])) { //<-- replace with the name of your input
    die("response to go in textarea here");
}
?>

die命令终止输出,可选择使用给定的字符串(AJAX 响应),因此页面的剩余 HTML 也不会输出。

最好将您的页面和 AJAX 处理程序作为单独的文件。作为一个,您不必要地加载了比每个 AJAX 请求所需的更大的文件,因为它包含不需要的 HTML。

于 2013-05-31T18:07:53.127 回答
0

使用一些变量来定义脚本需要执行的操作。对脚本的 AJAX 调用可能不会回显页面的所有 html,而只会回显您的文本区域的一些文本。

尝试类似:

<?php

if ($_GET['action'] == 'text') {
    echo 'Some text for the textarea';
} else {
    //regular page load
}

?>

$.ajax({
    'type': 'GET',
    'url': '/thisScript.php',
    'data': 'action=text',
    'success':function(data) { $('textarea').val(data); },
});

您可以将 switch 语句用于每个脚本的许多不同操作。

干杯。

于 2013-05-31T18:09:19.597 回答
0

见这篇文章:http ://davidwalsh.name/detect-ajax

您可以在文件顶部检查请求是否为 AJAX。

/* AJAX check  */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    /* special ajax here */
    die($content);
}
于 2013-05-31T18:14:16.163 回答