使用Ajax将PHP值传递给javascript


Pass PHP value to javascript using Ajax

我有一个php代码,它提供数据库值。我需要javascript变量中的这些值。

Javascript代码

<script src="http://code.jquery.com/jquery-1.8.0.js"></script>
<script type="text/javascript">
    function text() {
        var textVal=$("#busqueda_de_producto").val();
        $.ajax(
        {
            type:"POST",
            url:"index.php",  //here goes your php script file where you want to pass value
            data: textVal,
            success:function(response)
            {
               // JAVSCRIPT VARIABLE = varable from PHP file.
            }
        });
        return false;
    }
</script>

PHP文件代码:

<?php
    $q11 = "select * from sp_documentocompra_detalle where dcd_codigo".$_GET['codigo']; 
    $res11 = mysql_query($q11);
    $row11 = mysql_fetch_array($res11);
?>

返回的数据在response参数中。您必须在PHP中echo您的数据才能获得结果

使用JSON格式是方便的

因为它的关键价值本质。

使用json_encode将PHP数组转换为json。

echo json_encoded变量

您将能够通过$.ajax 接收JSON响应数据

JavaScipt/HTML:

<script src="http://code.jquery.com/jquery-1.8.0.js"></script>
<script type="text/javascript">
    function text()
    {
        var textVal=$("#busqueda_de_producto").val();
        $.post('index.php', { codigo:textVal }, function(response) {
            $('#output').html(response.FIELDNAME);
        }, 'json');
        return false;
    }
</script>
<span id="output"></span>

PHP:

$q11 = "select * from sp_documentocompra_detalle where dcd_codigo='".mysql_escape_string($_POST['codigo'])."'";
$res11 = mysql_query($q11);
$row11 = mysql_fetch_array($res11);
echo json_encode($row11);

您在PHP脚本中没有回显任何内容

尝试将您的PHP更改为:

<?php
        $q11 = "select * from sp_documentocompra_detalle where dcd_codigo".$_GET['codigo']; 
        $res11 = mysql_query($q11);
        $row11 = mysql_fetch_array($res11);
        echo $row11; //This sends the array to the Ajax call. Make sure to only send what you want.
?>

然后,在Ajax调用中,您可以通过在成功处理程序中写入alert(response)来提醒这一点。

提示

将数据以URL串行字符串形式发送到服务器:request=foo&bar=4。如果你喜欢JSON,你也可以试试。

不要使用mysql_*PHP函数,因为它们已被弃用。尝试搜索PHP数据对象(PDO)。

我看到了很多需要纠正的

ajax中的数据是这样做的data: {'codigo':textVal},,因为您使用的是$_GET['digo'],这导致了第二次更正,所以您使用了type:"POST",所以您还必须访问$_POST变量,而不是$_GET变量,最后,您的ajax目标不会显示/返回任何内容,无论是echo it还是echo json_encode() it

最好的解决方案是使用echo json_encode("您的阵列/要使用的值")

然后将javascript代码中的JSON解析为obj=JSON.parse(响应)