无法将 Ajax 返回插入到 HTML 中
Unable to insert Ajax return into HTML
我正在尝试使用 PHP 文件来处理来自 Ajax 请求的序列化信息。我想发回每个表单字段的值,以便由javascript(插入到div中)进一步操作。结果未插入到 HTML 中。当我提醒结果时,我得到{"return":["<p>form value for name<'/p>","<p>form value for description<'/p>"]}
有什么建议吗?
编辑:使用相关HTML和修订的PHP代码更新了问题。
.HTML:
<div class="col-md-4">
<h5>Heading</h5>
<div id="formBasicResults"></div>
</div>
Javascript:
.on('success.form.fv', function (e) {
e.preventDefault();
var $form = $(e.target);
var bv = $form.data('formValidation');
$.post($form.attr('action'), $form.serialize())
.done(function (result) {
$('#formBasicResults').html(result.responseText);
alert(result);
},'json');
});
.PHP:
if (!isset($_SESSION)) {
session_start();
if (!isset($_SESSION['token'])) {
$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
$_SESSION['token_time'] = time();
} else {
$token = $_SESSION['token'];
}
}
foreach($_POST as $key = > $value) {
$temp = is_array($value) ? $value : trim($value);
$_SESSION[$key] = $temp;
}
$expected = array(
'name' = > 'string',
'description' = > 'string',
);
foreach($expected AS $key) {
if (!empty($_POST[$key])) {
$ {$key} = $_POST[$key];
} else {${$key} = NULL;
}
}
foreach($expected AS $key = > $type) {
if (empty($_POST[$key])) {
$ {$key} = NULL;
continue;
}
if (!isset($ {
$key})) {
$ {$key} = NULL;
}
}
function safe( $value ) {
htmlentities( $value, ENT_QUOTES, 'utf-8' );
return ($value);
}
$name = $_POST['name'];
$description = $_POST['description'];
$return['result']=array();
if(!empty($name)){$return['result'][]= '<p>' . safe($name) . '</p>';}
if(!empty($description)){$return['result'][]= '<p>' . safe($description) . '</p>';}
echo json_encode($return);
尝试这样的事情:
$('#formBasicResults').html(result['return'][0]);
或
$('#formBasicResults').html(result['return'][1]);
取而代之的是:
if ($_POST['token'] == $_SESSION['token'])
{$return['return']=array();
if(!empty($_POST['name'])){$return['return'][] = '<p>' . htmlentities($_POST['name'], ENT_QUOTES, 'UTF-8') . '</p>';
if(!empty($_POST['description'])){$return['return'][] = '<p>' . htmlentities($_POST['description'], ENT_QUOTES, 'UTF-8') . '</p>';}
echo json_encode($return); }}
这样做:
$return['responseText']='';
if ($_POST['token'] == $_SESSION['token'])
{
if(!empty($_POST['name'])){
$return['responseText'] .= '<p>' . htmlentities($_POST['name'], ENT_QUOTES, 'UTF-8') . '</p>';
if(!empty($_POST['description'])){
$return['responseText'] .= '<p>' . htmlentities($_POST['description'], ENT_QUOTES, 'UTF-8') . '</p>';}
}
}
echo json_encode($return);
相关文章:
- 如何在 MVC 中使用 javascript 作为原始 html 插入内容 ASP.NET
- 将 HTML 插入 Jekyll 帖子
- 在插入符号 (IE) 处将 HTML 插入 iFrame 中
- 反应:使用危险设置内部HTML插入时脚本标记不起作用
- 将 HTML 插入网页
- Dom 函数,将 HTML 插入到 dom 中替换所有内容
- 在不创建 CORS 限制的情况下将 HTML 插入画布
- 使用 javascript 编辑 HTML:插入 而不是
作为换行符 - TinyMCE,将HTML插入特定的TinyMCE实例
- CKEditor将HTML插入文本区域
- 在使用ajax将html插入页面后选择dom元素
- 如何使用jQuery打开一个新窗口并将html插入其中
- 从 AngularJS 控制器将 HTML 插入视图
- 有没有比insertAdjacentHTML()和一个巨大的HTML字符串更好的方法将HTML插入DOM中
- 使用ng指令将HTML插入视图::AngularJS+JavaScript+Ionic
- 如何修改此Javascript以允许将HTML插入到Button文本中?
- 用Jquery将HTML插入DIV
- 将HTML插入到光标位置到Ace编辑器
- 使用JavaScript/jQuery将多行HTML插入iframe的正确方法
- 用html插入一个列表项