PHP 不读取 ajax 调用发送的 textarea 内容
Posted
技术标签:
【中文标题】PHP 不读取 ajax 调用发送的 textarea 内容【英文标题】:PHP doesnt read textarea content sended by ajax call 【发布时间】:2017-08-01 01:18:15 【问题描述】:我正在处理这个 ajax 调用:
html:
表单有一个文本区域,用户可以在其中输入一些文本
<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 调用开始执行服务器端检查,以有效地将文本插入数据库。
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="" 而不是用户之前键入的真实文本..
为什么? 谢谢你帮助我。
【问题讨论】:
我已经转储了 $_POST 并且它返回了一个空数组:array(0) 【参考方案1】:我在这里找到解决方案:
Can't figure out why PHP not receiving POST data from $.ajax call
这不是 textarea 问题,而是 ajax jquery 问题(数据选项)。
【讨论】:
以上是关于PHP 不读取 ajax 调用发送的 textarea 内容的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 javascript forEach 循环中的 php 数组发送到 ajax 调用的 url