2016-04-27 4 views
0

Ich verwende diesen Code, um mehr Textfelder in ein Formular einzufügen. Grundsätzlich erlaube ich es, damit Benutzer mehrere Sprachen hinzufügen können, die sie sprechen.Hinzufügen von Texteingabefeldern in eine SQL-Datenbank als neuer Datensatz

<script> 
jQuery(function($) { 
    var i = 0; 
    $('#theButton').click(addAnotherTextBox); 
    function addAnotherTextBox() { 
     $("#theForm").append("<br><label>Language <input type='text' name='language" + i + "' >"); 
    } 
}); 
</script> 


<div id='theForm'></div> 
<form id="form" name="form"> 
    <input id='theButton' type='button' value='Add Medical History'> 
    <input id="submit" onclick="myFunctionlanguage()" type="button" 
value="Update" class="btn btn-primary btn-block" > 
</form> 

die Funktion auf der Submit-Button im Grunde die Daten in eine PHP-Datei speichert Post ist mit Ajax (So, dass es nicht um eine andere Seite oder aktualisieren zu richten braucht es zu posten.

Die PHP Code, den ich zur Zeit habe, ist

$language = $_POST['language'];  
if (isset($_POST['language1'])) { 
    $sql_insert1 = "INSERT into `languages` (`language`,`cc`,`userid`) 
VALUES('$language','cc','$user->id')"; 
    mysql_query($sql_insert1) or die("Insertion Failed:" . mysql_error()); 
} 

Diese nicht jede Sprache zu sein scheint das hinzufügen ich getippt habe, wenn ich ein neues Textfeld hinzu.

Irgendwelche Ideen?

Vielen Dank im Voraus.

Edit: - Ich habe die Beispiele unten versucht und es scheint immer noch nicht in meine Datenbank hinzuzufügen.

Könnte es etwas mit meiner tatsächlichen On-Click-Funktion zu tun haben?

<script> 
function myFunctionlanguage() { 
    var language = document.getElementById("location").value;  
    // Returns successful data submission message when the entered information is stored in database. 
    var dataString = '&language1=' + language; 
    if (location == '') { 
     alert("Please enter a language!"); 
    } else { 
     // AJAX code to submit form. 
     $.ajax({ 
      type: "POST", 
      url: "includes/updatelanguage.php?userid=<?echo $user->id;?>", 
      data: dataString, 
      cache: false, 
      success: function(html) { 
       alert(html); 
       document.getElementById('close').click() 
       window.location.reload(); 
      } 
    }); 
    } 
    return false; 
} 
</script> 
+0

Anstelle der Verwendung von 'Sprache + I' könnten Sie' Sprache [] 'Das ist ein Array in' $ _POST' erstellen. Wenn Sie dies als String in der Datenbank speichern wollen, müssen Sie 'implode()' vor dem Speichern verwenden. Wenn Sie für jede Sprache einen Eintrag hinzufügen möchten, müssen Sie 'foreach()' verwenden – RST

Antwort

0

Versuchen Sie es einfach. Wie ich Sie bekomme, kann es für Sie nützlich sein.

<script> 
jQuery(function($) { 

$('#theButton').click(addAnotherTextBox); 
function addAnotherTextBox() { 
var i=parseInt($("#max").val()); 
i=i+1; 
$("#max").val(i); 
$("#form").prepend("<br><label>Language <input type='text' name='language" + i + "' >"); 
} 
}); 

</script> 

<form id="form" name="form"> 
<input type="hidden" name='max' id="max" value="0"/> 
<input id='theButton' type='button' value='Add Medical History'> 
<input id="submit" onclick="myFunctionlanguage()" type="button" 
value="Update" class="btn btn-primary btn-block" ></form> 



$max=$_POST['max']; 

for($i=1;$i<=$max;$i++){ 

$language = $_POST['language'.$i]; 


if (isset($_POST['language'.$i])) { 

$sql_insert1 = "INSERT into `languages` 
(`language`,`cc`,`userid`) 
VALUES('$language','cc','$user->id')"; 


mysql_query($sql_insert1) or die("Insertion Failed:" . mysql_error()); 
} 

} 
0

Statt einen Namen zu jedem Eingabefeld dynamisch zuweisen zu versuchen, sollten Sie nur sie nennen alle languages[], mit dem Sie alle Eingabefelder mit dem Namen languages[] als eine einzige Variable des $POST Array schreiben lassen.

HTML:

<script> 
jQuery(function($) { 
    $('#theButton').click(addAnotherTextBox); 
    function addAnotherTextBox() { 
     $("#theForm").append("<br><label>Language <input type='text' name='languages[]' >"); 
    } 
}); 

</script> 

<div id='theForm'></div> 
<form id="form" name="form"> 
<input id='theButton' type='button' value='Add Medical History'> 
<input id="submit" onclick="myFunctionlanguage()" type="button" 
value="Update" class="btn btn-primary btn-block" ></form> 

PHP:

if (isset($_POST['languages'])) { 
    foreach ($_POST['languages'] as $language) {} 
     $sql_insert1 = "INSERT into `languages` (`language`,`cc`,`userid`) VALUES ('$language','cc','$user->id')"; 

     mysql_query($sql_insert1) or die("Insertion Failed:" . mysql_error()); 
    } 
} 
Verwandte Themen