试图找出我的代码不会通过所有POST数据发送的原因。代码在主页面上使用,以获取存储在db中的请求信息,并在单独的页面上使用,以便将我发送到DB的状态更新发布。除变量名外,它基本相同。
注意:我在这里搜索了很多。我使用了var_dump,它只显示数组中的“内容”数据。我对js不太满意,但可以遵循一些。因此,下面的代码是我在一个页面上编辑和测试的模板,然后尝试扩展到另一个页面。这就是问题所在。我不确定为什么它适用于一个而不是另一个。抱歉,如果这被认为是任何事情的重复,但我没有在类似的帖子中找到一个很好的答案来解释原因。 admin.php的:
<form action="insert.php" method="post" enctype="multipart/form-data">
<div class="share">
<div class="arrow"></div>
<div class="panel panel-default">
<div class="panel-body">
<div class="">
<img src="../logo.png" style="height:60px; width:60px; float:left; margin-right:3px;" />
<textarea name="content1" id="content1" cols="40" rows="10" class="form-control message" style="height: 60px; width:450px; overflow: hidden;"></textarea>
</div>
</div>
<div class="panel-footer">
<div class="row">
<div class="col-md-7">
<div class="form-group">
<div class="btn-group">
<select name="avatar" id="avatar" class="form-control-issue-avatar"> <----whats not sending
<option value="0" selected="selected">Author</option>
<option value="per1">P</option>
<option value="per2">W</option>
</select>
</div>
</div>
</div>
<div class="col-md-5">
<input type="submit" value="Post" class="post_button">
</div>
</div>
</div>
</div>
</form>
这是insert.php:
if(isSet($_POST['content1'], $_POST['avatar']))
{
$content1=$_POST['content1'];
$avatar=$_POST['avatar']; // <--- comes back NULL
$sql_in= mysqli_query($con,"SELECT comment,comment_id,status_time FROM comments order by comment_id desc");
$r=mysqli_fetch_array($sql_in);
}
最后调用它的post.js:
$(function() {
$(".post_button").click(function() {
var element = $(this);
var test = $("#content1").val();
var dataString = 'content1='+ test;
if(test=='')
{
alert("Please Enter Some Text");
}
else
{
$("#flash").show();
$("#flash").fadeIn(400).html('<span class="loading">Loading Comment...</span>');
$.ajax({
type: "POST",
url: "insert.php",
data: dataString,
cache: false,
success: function(html){
$("#display").after(html);
document.getElementById('content1').value='';
$("#flash").hide();
}
});
}
return false;
});
});
var_dump等:
Array ( [content1] => sass )
C:\wamp64\www\post\insert.php:32:
array (size=1)
'content1' => string 'sass' (length=4)
答案 0 :(得分:2)
向表单添加id属性,然后在表单上使用serialize()
将表单中的所有数据通过ajax传递给php
<form id='formid'>
$.ajax({
data: $('#formid').serialize(),
//other Ajax stuff
});