2012-06-22 57 views
0

我想在return.php页面发送一个输入数据(code_bar),在mysql选择回调3数据(prezzo; prodotto; descrizione)之后,但不工作。我在这里张贴HTML文件与JavaScript和PHP文件至少调用一个数据从选择到我的分贝。

HTML

<form action="" method="post" name=""> 
Codice a Barre <p> 
<input id="code_bar" name"code_bar" /> 
<button onclick="button">Chiama</button><p> 
Prodotto<p> 
<input id="Prodotto" name="Prodotto" /><p> 
Prezzo<p> 
<input id="Prezzo" name="Prezzo" /><p> 
Descrizione <p> 
<input id="Descrizione" name="Descrizione"/

SCRIPT

<script type="text/javascript"> 
function invia(){ 
    var code_bar = $("input#code_bar").val(); 
    $.ajax({ 
     url:"return.php", 
     data: {code_bar: 'code_bar'}, 
     success:function(data) { 
      $("#Prezzo").val(data.Prezzo); 
      $("#Prodotto").val(data.Prodotto); 
      $("#Descrizione").val(data.Descrizione); 


     "json"} 
    }); 
} 
</script> 

return.php

<?php 
if(isset($_POST['code_bar'])){ 
     $code_bar = $_POST['code_bar']; 
    } 
mysql_select_db($database_mydb, $mydb); 
$query_estraggo = "SELECT * FROM prodotti WHERE code_bar = '$code_bar'"; 
$estraggo = mysql_query($query_estraggo, $mydb) or die(mysql_error()); 
$row_estraggo = mysql_fetch_assoc($estraggo); 
$totalRows_estraggo = mysql_num_rows($estraggo); 

     if ($row_estraggo = mysql_fetch_assoc($estraggo)){ 
      $ritorno = '{"Prezzo":'.$row_estraggo['Prezzo'].',"Prodotto":'.$row_estraggo['Prodotto'].',"Descrizione":'.$row_estraggo['Descrizione'].'}'; 


     $json = $JSON->encode($ritorno); 
     echo $json; 
     exit($ritorno); 

     } 
mysql_free_result($estraggo); 
?> 
+1

SQL注入可能在'return.php'中... –

回答

0
 You should also define type of input 
     <input id="code_bar" name"code_bar" type="text"/> 
    In $.ajax default type is get if you send data with post method then add type:"post" in $.ajax method 

    $.ajax({ 
      url:"return.php", 
      type:"post", 
      data: {code_bar: code_bar}, 
      dataType:"json", 
      success:function(data) { 
       $("#Prezzo").val(data.Prezzo); 
       $("#Prodotto").val(data.Prodotto); 
       $("#Descrizione").val(data.Descrizione); 


      } 
     }); 
+1

默认的'input'类型是'text',所以不应该出现问题。 –

3

你正在传递GET一个字符串,而不是实际值

data: {code_bar: 'code_bar'}, 

写,而不是

data: {code_bar: code_bar}, 

反正你至少应该能够理解您的通话失败(在你的ajax调用或在服务器端脚本):例如萤火虫有xhr面板中,你可以清楚地看到数据是如何传递

一点题外话,在你php你应该避免赞成PDO声明

所有 mysql_*功能
+0

我改变后的值没有'',但不工作 – Marco

+0

你是否也用'$ .post'改变了'$ .ajax'(正确的由xdazz建议)? – fcalderan

+0

对不起,但我没有更多的经验与PHP/jascrcipt – Marco

1

通过$.ajax的请求的默认类型是GET ,您需要将其设置为POST,或者使用$.post代替。 (您的$.ajax有语法错误)。

data: {code_bar: 'code_bar'},会造成code_bar总是字符串code_bar,应该是data: {code_bar: code_bar},

+0

好吧,我改变,但没有工作,我插入类型在我的按钮字段,但没有任何变化 – Marco

+0

毕竟改变了,现在我的网址提交更改后?Prodotto =&Prezzo =&Descrizione = – Marco