我使用ajax请求提交表单,该请求将值发布到php脚本,然后将这些值存储在数据库中。这是我的ajax帖子:
$.ajax({
type:"POST",
url: "wp-content/plugins/super-plugin/process.php",
'data': 'datastring',
success: function() {
$('#formwrapper').html("<div id='message'></div>");
$('#message').html("<h2>Contact form submitted!</h2>")
.append("<p>We will be in touch soon.</p>").hide().fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/check.png' />");
});
}
});
这是我的PHP文件:
$full = explode("&", $_POST["data"]);
$fname = explode(":", $full[0]);
$name = $fname[1];
$femail = explode(":", $full[1]);
$email = $femail[1];
$fphone = explode(":", $full[2]);
$phone = $fphone[1];
$conn = mysqli_connect("localhost", "Andrew", "Change0", "plugindatadb");
mysqli_query($conn, "INSERT INTO data (Name, Email, Phone) VALUES ('$name', '$email', '$phone')");
数据字符串中的数据格式为&#34;名称:Bo&amp; email:bob @ mail&amp; phone:0786754333&#34;。但是出于某种原因,我不能使用我的PHP脚本中发送的那些变量?出于某种原因,php脚本也不能运行。
答案 0 :(得分:0)
您提到在可变数据字符串中设置了格式化查询参数,那么在这种情况下,您应该使用如下所示的ajax请求(删除数据和数据字符串的引号)。
$.ajax({
type:"POST",
url: "wp-content/plugins/super-plugin/process.php",
data: datastring,
success: function() {
$('#formwrapper').html("<div id='message'></div>");
$('#message').html("<h2>Contact form submitted!</h2>")
.append("<p>We will be in touch soon.</p>").hide().fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/check.png' />");
});
}
});
答案 1 :(得分:0)
从数据字符串中删除''
,
data: datastring
这不是将数据传递给json的正确方法,如数据,
$.ajax({
type:"POST",
url: "wp-content/plugins/super-plugin/process.php",
'data': {
name:"Bo",email:"bob@mail",phone:"0786754333"
},
success: function() {
$('#formwrapper').html("<div id='message'></div>");
$('#message').html("<h2>Contact form submitted!</h2>")
.append("<p>We will be in touch soon.</p>").hide().fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/check.png' />");
});
}
});
并进入php页面。
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
答案 2 :(得分:0)
首先,在:
'data': 'datastring',
如果“datastring”是一个变量,正如您对其格式的描述所示,那些值不应该在引号中。所以:
data: datastring,
其次,如果您的PHP脚本假定传入的数据可以拆分为各种组件,并且在没有首先验证数据是否为所需格式(或者至少存在那些数组元素)的情况下访问这些数组元素,那么它如果数据无效,将抛出异常。目前正在发生这种情况,因为数据是'datastring'。您应该始终验证输入参数,因为它可以节省长时间的时间。
答案 3 :(得分:0)
将 data
电话中的ajax
更改为
data : { datastring : datastring },
在php中访问$_POST['datastring']
。