2017-07-29 3 views
-1

Ich versuchte, Informationen über Ajax über Benutzer_fragen und Spracheingabefelder zu senden, aber wie man dieses Element innerhalb ajax Javascript korrekt schreibt, um den Tabellenelementwert in der Datenbank zu speichern.ajax, php wie man Daten richtig speichert

danke.

das Skriptelement.

<table id="myTable" class="table table-sm table-hover order-list"> 
     <thead> 
      <tr> 
       <td>User Question</td> 
       <td>Language</td> 
      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td class="col-md-9">' . HTML::inputField('user_question', null, 'placeholder="Write a short answer"'). '</td> 
       <td class="col-md-2">' . HTML::inputField('language', null, 'placeholder="Language"') . '</td> 
       <td class="col-sm-1"><a id="delete_row" class="deleteRow"></a></td> 
      </tr> 
     </tbody> 
     <tfoot> 
      <tr> 
      <td colspan="5"> 
       <input type="button" class="btn btn-lg btn-block " id="addrow" value="Add Row" /> 
      </td> 
      </tr> 
      <tr></tr> 
     </tfoot> 
    </table> 

<script> 
$(document).ready(function() { 
    var counter = 0; 

    $("#addrow").on("click", function() { 
     var newRow = $("<tr>"); 
     var cols = ""; 

     cols += '<td><input type="text" class="form-control" name="user_question' + counter + '"/></td>'; 
     cols += '<td><input type="text" class="form-control" name="language' + counter + '"/></td>'; 

     cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger " value="Delete"></td>'; 
     newRow.append(cols); 
     $("table.order-list").append(newRow); 
     counter++; 

    // element pb    
    // var data = $("#new_product").serialize(); // form id or table id ? 

    var dataString = 'user_question='+user_question+'language='+language; 

    $.ajax({ 
     type: 'POST', 
     url: '{$ajax_url}', 
     data : dataString, 
     success: function(data) { 
      alert(data); 
      $("p").text(data); 

     } 
    }); 

    $("table.order-list").on("click", ".ibtnDel", function (event) { 
     $(this).closest("tr").remove();  
     counter -= 1 
    }); 

}); 

</script> 
+0

Wenn Sie mehrere Eingänge haben mit dem gleichen Namen müssen Sie sie 'name =" user_question [] "' und 'name =" language [] "' nennen, damit PHP ein Array aller Eingaben erhält. – Barmar

+0

Ok, versuche ich 'cols + =' '; 'und' var dataString = "user_question [] =" + user_question; ' Das Ergebnis ist: 'array (1) { ["user_question"] => array (1) { [0] => string (25) "[Objekt HTMLInputElement]" }' – maegeri

Antwort

0

Verwenden wie diese PHP-Variablen Wert innerhalb Javascript in .php Seite

url: "<?php echo $ajax_url; ?>", 

Auch & und Symbol verwenden zu erhalten, fügen Sie zwei oder mehr param in Ihrem dataString