我正在处理这个ajax调用:
HTML:
表单有一个textarea,用户可以在其中键入一些文本
<div id="step-3">
<h2 class="StepTitle">Testo</h2>
<form id="text" class="form-horizontal form-label-left">
<div class="item form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Textarea <span class="required">*</span>
</label>
<div class="col-md-6 col-sm-6 col-xs-12">
<textarea id="textarea" name="testo" data-parsley-required="true" class="form-control col-md-7 col-xs-12"></textarea>
</div>
</div>
</form>
<ul id="error3_ul" class="list-unstyled">
<li id="error3_li"></li>
</ul>
</div>
JS:
此功能由smartwizard调用。当用户键入一些文本并按下按钮时,ajax调用开始执行服务器端检查,以便有效地将文本插入db。
function onFinishCallback()
{
var data = $('#textarea').val();
$.ajax({
method: 'post',
data: data,
dataType: 'html',
url: "include/library/pull_sim.php",
success: function(result) {
successmessage = 'Data was succesfully captured';
$("#error3_li").text(result);
},
});
}
PHP:
Php接收发布的textarea值,检查一个similar_text是否已经进入db,如果是,它会通过ajax调用结果向用户发出警告。
if((!ISSET($_POST['testo'])))
$val='';
else
$val=$_POST['testo'];
$q_sim='select nciarfata from nciarf.nciarfata';
$s_sim=mysqli_query($conn,$q_sim);
$n_sim=mysqli_num_rows($s_sim);
if ($n_sim>0)
{
$simil=array();
for ($i=0;$i<$n_sim;$i++)
{
$rou=mysqli_fetch_row($s_sim);
similar_text($val, $rou[0], $percent);
if ($percent>=95.0)
{
array_push($simil,$rou[0]);
}
}
echo"val=$val, rou[0]=$rou[0], percent=$percent";
}
问题:
在我看来,服务器端出现问题,可能是在第一个if。 Php没有识别发布的值,然后分配val =“”而不是用户输入的真实文本..
为什么呢? 谢谢你的帮助。
答案 0 :(得分:0)
我在这里找到解决方案:
Can't figure out why PHP not receiving POST data from $.ajax call
这不是textarea问题,而是ajax jquery问题(数据选项)。