JQUERY$.post表单到PHP脚本
如往常一样,如果你花时间帮我看一下,请提前感谢 我正在努力将表单数据发布到php脚本中。目前,输入字段#userreviewtitle工作正常,但是文本区域#注释和选项选择#hearts似乎没有发布。他们将通过jquery发出警报,因此脚本将接收他们,而不仅仅是发布 我做错了什么?渴望解决这个问题并学习 表格如下:JQUERY$.post表单到PHP脚本,jquery,Jquery,如往常一样,如果你花时间帮我看一下,请提前感谢 我正在努力将表单数据发布到php脚本中。目前,输入字段#userreviewtitle工作正常,但是文本区域#注释和选项选择#hearts似乎没有发布。他们将通过jquery发出警报,因此脚本将接收他们,而不仅仅是发布 我做错了什么?渴望解决这个问题并学习 表格如下: <div id="userreviewcontainer"> <form id="userreview" name="userreview" ac
<div id="userreviewcontainer">
<form id="userreview" name="userreview" action="" method="POST">
<input type="text" id="userreviewtitle" name="userreviewtitle" placeholder="Review title">
<textarea id="comment" name="comment" rows="4" placeholder="What is your opinion of <?php the_title(); ?>?"></textarea>
<div id="userreviewrating">
<select name="hearts" id="hearts">
<option value="" disabled selected>Your Rating</option>
<option value="1">1 Heart</option>
<option value="2">2 Hearts</option>
<option value="3">3 Hearts</option>
<option value="4">4 Hearts</option>
<option value="5">5 Hearts</option>
</select>
</div>
<div id="userreviewratingsubmit">
<?php if($_SESSION['login'] !== 1 || $_SESSION['logged_in'] !== "logged") {?>
<a rel="prettyPhoto" href="#user_inline" class="button customreviewbutton">Submit</a>
<?php }
else if($_SESSION['login'] === 1 || $_SESSION['logged_in'] === "logged"){ ?>
<input type="submit" value="submit" id="performreview" class="button customreviewbutton" alt="Submit"/>
<?php } ?>
</div>
<div id="clear"></div>
</form>
这两位评论员所说的是,通过收集所有表单值并将它们传递到Ajax调用中,您正在执行一个额外且不必要的步骤
更好的方法是使用jQuery方法。您的代码看起来是这样的(请注意,我更喜欢$.ajax
语法,但应该仍然很容易理解):
我不完全确定您对会话状态做了什么,但重要的部分是$.ajax
调用中以数据开始的那一行。如果进行此修改后仍无法获得预期值,请进行更新。您是否尝试过直接序列化表单数据$(#userreview”).serialize()(代替json字符串)。抱歉@jeff ancel,您可能需要进一步解释一下。我还在努力学习Jquery代替你的json字符串?我想他指的是你的数据对象。你没有json字符串。你能详细说明一下@kevin-b吗?
<script type="text/javascript">
$(document).ready(function($){
$("#performreview").on('click',function(event) {
//Create Variables
var title = $('#userreviewtitle').val();
var comment = $('#comment').val();
var hearts = $('#hearts').val();
// Prevent form from submitting the normal way
$("#userreviewnew").empty();
$.post( "/wp-content/themes/xxxxxxx/process-comment.php",
{
'userreviewtitle' : title,
'comment' : comment,
'hearts' : hearts
},
function( data ) {
$('#userreviewnew').append(data);});
event.preventDefault();
});
});
</script>
$('form').on('submit'), function(e) {
e.preventDefault();
$.ajax({
type: 'post',
data: $(this).serialize(),
dataType: 'html',
success: function(result) {
$('userreviewnew').append(result);
},
error: function(xhr, status, err) {
console.log(err);
}
});