0

return.php ページで入力データ (code_bar ) を送信したいのですが、MySQL がコールバック 3 データ ( prezzo;prodotto;descrizione ) を選択した後、機能しません。ここに、選択したデータをデータベースに呼び出す JavaScript ファイルと PHP ファイルを含む html ファイルを投稿します。

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 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);
?>
4

3 に答える 3

3

GET実際の値の代わりに文字列を渡しています

data: {code_bar: 'code_bar'},

代わりに書く

data: {code_bar: code_bar},

とにかく、少なくとも呼び出しがどこで失敗しているかを理解できるはずです(ajax呼び出しまたはサーバー側スクリプトで):たとえば、Firebugには、xhrデータがどのように渡されるかを明確に確認できるパネルがあります

補足として、ステートメントを優先してすべての機能をphp避ける必要がありますmysql_*PDO

于 2012-06-22T09:52:39.950 に答える
1

によるリクエストのデフォルトのタイプは です$.ajaxGETこれを に設定するか、代わりにPOST使用する必要があります。$.post($.ajax構文エラーがあります)。

そして、常に文字列になりますがdata: {code_bar: 'code_bar'},、そうあるべきです。code_barcode_bardata: {code_bar: code_bar},

于 2012-06-22T09:53:44.243 に答える
-1
        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);


           }
         });
于 2012-06-22T09:52:24.710 に答える