2016-09-20 10 views
0

このJavaScriptでエラーが発生しました。動的にドロップダウンリストのonchangeの行を追加する必要があります。つまり、それぞれ「追加」ボタンをクリックし、行を追加し、ドロップダウンメニューの変更に基づいてテキストボックスに値を取得します。JavaScript:Uncaught SyntaxError:missing)引数リストの後にonchangeイベントのある行を追加しています

 $(document).ready(function() { 
      var a = 1; 
      $('.tab_new').on('change', '.product_name', function() { 
       var product_code = $('#product_name' + a).val(); 
       $.ajax({ 
        type: "get", 
        url: 'price.php', 
        data: { 
         product_code: product_code 
        }, 
        dataType: 'json', 
        success: function(data) { 
         if (data) { 
          $('#product_price' + a).val(data) 
         } 
        } 
       }); 
      }); 
      $("#add").click(function() { 
       a = a + 1; 
       $('#datatables tr').eq(-2).after('<tr><td><input type="text" name="client_name[]" value="" id="client_name' + a + '"/></td><td ><select class="product_name" name="product_name[]" id="product_name' + a + '" ><option value=""> --------all-------- </option> <?php $result=mysql_query("select * from product_form"); while($row = mysql_fetch_row($result)) { echo "<option value=' 
        $row[0] 
        '> $row[1] </option>"; } ?></select></td><td ><input type="number" name="product_price[]" value="" id="product_price' + a + '" class=".product_price"/></td></tr>'); 
      }); 
     }); 
HTML: 

<table id="dataTables" class="tab_new"> 
       <thead > 
        <tr> 
         <th>CLIENT NAME</th> 
         <th>PRODUCT NAME </th> 
         <th>PRICE </th> 
        </tr> 
       </thead> 
       <tbody> 
        <tr> 
         <td><input type="text" name="client_name[]" value="" id="client_name"/></td> 
         <td><select name="product_name[]" id="product_name1" class="product_name"> 
           <option value=""> --------ALL-------- </option> 
           <?php $result=mysql_query("Select * from product_form"); 
            while($row = mysql_fetch_row($result)) 
            { 
              echo "<option value='$row[0]'> $row[1] </option>"; 
           } ?> 
         </select></td> 
         <td><input type="number" name="product_price[]" value="" id="product_price1" class="product_price"/></td> 
        </tr> 
       </tbody> 
      </table> 
      <br><br><br> 
      <input type="submit" name="submit" value="Save"> 
      <input type="button" id="add" value="Add More" /> 

I am getting an error missing argument when i clicked on the button . 
+0

をエスケープすることにより、上記のエラーを解決することができますまた、あなたのJSコードをPHPを印刷しようとしている –

+1

HTMLコードを提供しています。どうして? また、$行はJSスコープでは定義されていませんが、ここでは変数として使用されています。 –

+0

PHPはその文字列の途中で改行を出力していますか? – nnnnnn

答えて

0
<script type="text/javascript"> 
      $(document).ready(function(){ 
       var a=1; 
       $('.tab_new').on('change','.product_name', function(){ 
        var product_code = $('#product_name'+a).val(); 
        $.ajax({ 
         type: "get", 
         url: 'price.php', 
         data: {product_code:product_code}, 
         dataType:'json', 
         success: function(data){ 
          if(data){ 
           $('#product_price'+a).val(data) 
          } 
         } 
        }); 
       }); 
       $("#add").click(function(){ 
        a=a+1; 
        $('#dataTables tr').last().after('<tr><td><input type="text" name="client_name[]" value="" id="client_name'+a+'"/></td><td ><select name="product_name[]" id="product_name'+a+'" class="product_name"><option value=""> --------ALL-------- </option> <?php $result=mysql_query("Select * from product_form");while($row = mysql_fetch_row($result)){ ?> <option value="<?php echo $row[0]; ?>"><?php echo $row[1]; ?> </option> <?php } ?></select></td><td ><input type="number" name="product_price[]" value="" id="product_price'+a+'" class="product_price"/></td></tr>'); 
       }); 
      }); 
     </script> 
+0

jsファイルを追加することを忘れないでください:jquery.min.js –

0

あなたのコードに$row[0]をエスケープするのを忘れました。

私はこのようにJSでPHPコードを印刷しようとしている理由を理解できません。それは動作しません。しかし、あなたが$row[0]

$(document).ready(function() { 
    var a = 1; 
    $('.tab_new').on('change', '.product_name', function() { 
     var product_code = $('#product_name' + a).val(); 
     $.ajax({ 
     type: "get", 
     url: 'price.php', 
     data: { 
      product_code: product_code 
     }, 
     dataType: 'json', 
     success: function(data) { 
      if (data) { 
      $('#product_price' + a).val(data) 
      } 
     } 
     }); 
    }); 
    $("#add").click(function() { 
     a = a + 1; 
     $('#datatables tr').eq(-2).after('<tr><td><input type="text" name="client_name[]" value="" id="client_name' + a + '"/></td><td ><select class="product_name" name="product_name[]" id="product_name' + a + '" ><option value=""> --------all-------- </option> <?php $result=mysql_query("select * from product_form"); while($row = mysql_fetch_row($result)) { echo "<option value=\'$row[0]\'> $row[1] </option>"; } ?></select></td><td ><input type="number" name="product_price[]" value="" id="product_price' + a + '" class=".product_price"/></td></tr>'); 
    }); 
    }); 
+0

実際には、ボタンをクリックすると行を追加するだけでなく、ドロップダウンリストを変更しながらテキストボックスに値を取得する必要があります。 –

+0

​​このコードは、HTML部分に正確に含まれています。私はスクリプトにそれを適用するだけです。私はすでにcodeigniterのJSでPHPコードを印刷しようとしています。その仕事はうまくいった。ここでは適用できません。 –

+0

このようには動作しません。 JSを介してPHPコードを注入して実行することはできません。 –

0
price.php file in core php 

     <?php include('connect.php'); 
     if(isset($_REQUEST['product_code'])){ 
      $sql = mysql_query("select * from product_form where product_code =".$_REQUEST['product_code']); 
      $res = mysql_fetch_array($sql); 
      echo $res['product_price'];die; 
     } 
     ?> 

     In case of codeigniter, use this code in controller section 

     public function get_product() 
      { 
       $pro= $this->input->get('product_code'); 
       $procode=$this->form1_model->get_productcode($pro); 
       echo json_encode($procode); 
      } 
関連する問題