如何在 MySQL SELECT 中正确获取输入值(WordPress 上的 Ajax)

我正在尝试在 SELECT 查询中使用输入字段值,但它以 null 或数组形式返回。


我得到了 jQuery 的值,我正在尝试用它在 WordPress 上使用 Ajax 进行查询。


我的 HTML


<input name="estado" type="radio" id="some-id" value="some-value">

我的 jQuery


$("#col1 input:radio").change(function(){


    var ufname= $(this).val();


    $.post({

        url: "http://192.168.64.2/monsoy/site/variedades/resultados-de-produtividade/estado-variedade",

        type: "POST", 

        data: ufname, 

        success: function(data) {

            $("#col2").html(data);

        },

        error: function(e) {

            console.log( e);

        }

    });


    return false;

});

我的 PHP



$sSQL = "   SELECT mapa_produtividade_variedade, mapa_produtividade_uf

            FROM " . $wpdb->prefix . "mapa_produtividade 

             ";

    $sSQL .= " WHERE mapa_produtividade_uf = '".addslashes(strip_tags($_POST[]))."'";


$sSQL .= " GROUP BY mapa_produtividade_variedade";


  $results = $wpdb->get_results( $sSQL , ARRAY_A );                     

if ($results) : 

foreach($results as $row) : ?>  


echo-results


使用<?php var_dump($_POST['estado']); ?>,我得到 NULL。


<?php var_dump($_POST); ?> 会给我


  ["MT"]=>

  string(0) ""

我的MT查询只需要那个(只有两个字符),但我可以在没有整个数组的情况下得到它。


我刚开始学习 PHP、Ajax 和 MySQL,所以我想我错过了一些非常简单的东西。


慕妹3242003
浏览 172回答 1
1回答

慕姐8265434

好的,所以你使用$_POST没有键的超级全局数组,所以如果你没有为 jQuery 中的数据提供键 = 值,$_POST 将无法在没有表单编码的键 = 值的情况下工作。例如 key=value&key2=value2因此,如果您不这样做,则需要阅读原始php://input流file_get_contents("php://input");另一种选择是更改var ufname= $(this).val();为var ufname= {val:$(this).val()};和$sSQL .= " WHERE mapa_produtividade_uf = '".addslashes(strip_tags($_POST[]))."'";到$sSQL .= " WHERE mapa_produtividade_uf = '".addslashes(strip_tags($_POST['val']))."'";此外,addslashes不是将字符串转义到 SQL 中的有效方法,使用绑定参数或至少内置模块转义器,请阅读:http : //shiflett.org/blog/2006/addslashes-versus-mysql -real-escape-string我的意思是我可以通过 Web Inspector 控制台在您的页面上使用 jQuery 并运行(function(){&nbsp;$.post({&nbsp; &nbsp; &nbsp; &nbsp; url: "http://192.168.64.2/monsoy/site/variedades/resultados-de-produtividade/estado-variedade",&nbsp; &nbsp; &nbsp; &nbsp; type: "POST",&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; data: "�' OR 1 = 1 /*",&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; success: function(data) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(data)&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; error: function(e) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(e);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; });})(jQuery);我发送的那个字符串在 php 中 chr(0xbf).chr(0x27).' OR 1=1 /*';
打开App,查看更多内容
随时随地看视频慕课网APP