传递变量Ajax和Php


Passing variable - Ajax and Php

我有一个简单的表单,它允许搜索,我想将结果显示到div中,所以我使用ajax来实现它。

<script type="text/javascript">  
$(document).ready(function(){  
    $('#boton_cargar').click(function() {   
    var nombre = $("#nombre").val(); 
        $.ajax({ 
        type: "GET",           
        url: 'resultados.php?nombre='+nombre, 
            success: function(data) {  
                $('#resultados').html(data);  
                $('#resultados div').slideDown(1000);  
            }  
        });  
    });  
});  
</script> 


<form>
<input id="nombre" name="nombre" type="text" />
<input name="boton_cargar" id="boton_cargar" type="button" value="buscar" />
</form>
<div id="resultados">
   // I want to show results here
</div>

这是resultados.php

<?php
include('loader.php'); //call db
$conn = new conection();
$rs = new RecordSet($conn);
if(isset($_GET['nombre']))
$sql="SELECT * FROM clientes INNER JOIN alquiler ON clientes.id_cliente = alquiler.id_cliente INNER JOIN insumos ON  insumos.id_insumo = alquiler.id_insumo WHERE `clientes`.`nombre` = {$_GET['nombre']}";
else
die('error');

unset($rs);
unset($conn);
?>
<?php foreach($resultados as $res){ ?> 
    <?php echo $res->nombre ?>
<?php }?>

我不知道它错在哪里,例如,如果我将{$_GET['nonbre']}替换为"jhon",我可以得到结果。

希望能帮助我,提前谢谢你!

您需要在{$_GET['nombre']} 周围加引号

$sql="SELECT * FROM clientes INNER JOIN alquiler ON clientes.id_cliente = alquiler.id_cliente INNER JOIN insumos ON  insumos.id_insumo = alquiler.id_insumo WHERE `clientes`.`nombre` = '{$_GET['nombre']}'";

尝试用以下内容替换sql行:

$sql="SELECT * FROM clientes INNER JOIN alquiler ON clientes.id_cliente = alquiler.id_cliente INNER JOIN insumos ON  insumos.id_insumo = alquiler.id_insumo WHERE `clientes`.`nombre` = '" . $_GET['nombre'] . "'";

您的问题是查询,因为它的格式而没有返回任何内容,请尝试以下操作:

$sql = "SELECT * FROM clientes INNER JOIN alquiler ON clientes.id_cliente = alquiler.id_cliente INNER JOIN insumos ON  insumos.id_insumo = alquiler.id_insumo WHERE `clientes`.`nombre` = '".$_GET['nombre']."'";

我希望这能帮助你。