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 内容的主要内容,如果未能解决你的问题,请参考以下文章

如何获取特定的 PHP 变量以通过 AJAX 调用发送?

将二进制数据从 jQuery ajax 发送到 PHP

将数据从 javascript forEach 循环中的 php 数组发送到 ajax 调用的 url

使用 AJAX 提交时发送电子邮件不起作用

如何在 ajax 函数调用中发送 var 以发送 POST? [复制]

PHP 从 Ajax 调用接收空的 $_POST 变量