我在下面有一个简单的AJAX函数,只需点击按钮#submit_message,它就是一个模态,数据被发送到一个页面(insert_message.php),数据被输入数据库并重新加载模态。我想将id的值作为recipient_id发送给模态。函数的第一部分工作和模态加载完美,但是模型的后期数据没有被发布 - 就像什么都没有 - 在Firebug上数据被发布到insert_message.php,但什么时候没有返回。我有非常类似的功能,做其他事情,这些工作正常。我已经找到了答案,但我认为这是一个非常具体的问题,所以没有成功。它甚至可能是语法问题 - 我是jQuery的新手。
$("#submit_message").click(function(){
var recipientId = $('#profile_id').val();
var subject = $('#message_subject').val();
$.ajax({
url: '../ajax/insert_message.php',
type: 'post',
data: {
'subject': $('#message_subject').val(),
'message': $('#message_field').val(),
'recipientId': recipientId,
},
success: function(html) {
$('.message_holder').load('message_modal.php', {id: recipientId});
$('input[type="text"],text').val('');
$('input[type="text"],textarea').val('');
}
});
return false;
});
这是PHP文件....
if(isset($_POST['subject'])
&& !empty($_POST['subject'])
&& isset($_POST['message'])
&& !empty($_POST['message'])
&& isset($_POST['recipientId'])
&& !empty($_POST['recipientId'])){
$message = new Message();
$message->subject = ($_POST['subject']);
$message->message = ($_POST['message']);
$message->time = strftime("%Y-%m-%d %H:%M:%S", time());
$message->sender_id = $_SESSION['sender_id'];
$message->recipient_id = $_POST['recipientId'];
$message->status = "unread";
$message->create();
}
PHP文件正常工作,发送给它的数据到达数据库......所以运行正常。还在测试其他领域。我有这种奇怪的感觉,它与jQuery没什么关系,更多的是与Modal ....没有包含所需的文件或东西。现在正在努力.....(ps我有isset和!空语句,因为我发现PHP在这方面偶尔出现意外行为.....)
这是输出 - 参数被发送并插入数据库.....
Parametersapplication/x-www-form-urlencoded
message Message
recipientId 162
subject Subject
Source
subject=Subject+&message=Message+&recipientId=162
然后控制台日志说.....
(nothing to output) scripts_ajax.js (line 66)
没有错误报告......仍然在努力....感谢您的关注,
在这里发布完整表单有点混乱,但这是message_modal.php的样子。我现在在想这个问题就在这里......
<div id="myModal" class="reveal-modal-mail">
<p>Message to <?php echo User::full_name($id);?><p>
<?php
if(isset($_POST['recipientId'])){
//DO STUFF
}
?>
<form action="" method="post">
<table>
<tr>
<td>
<input id="message_subject" name="subject" type="text"
placeholder="Message subject" size="20" maxlength="3000" value=""/>
</td>
</tr>
</table>
<table>
<tr>
<td>
<textarea id="message_field" name="message" type="text" placeholder="Message details"></textarea>
</td>
</tr>
</table>
<input id="submit_message" type="button" name="submit" value="submit" />
<input id="profile_id" type="hidden" name="submit" value="<?php echo $id;?>"/>
</form>
<a class="close-reveal-modal">×</a>
答案 0 :(得分:0)
我找到了答案,没有任何意外或不实。
班级&#39; message_holder&#39;在ajax函数中引用的是HTML页面上的mispelt。
延迟错误。
为浪费人们的时间道歉