0
私のコンテナにいくつかの入力フィールドを追加し、私のmysqlデータベースのエントリごとに追加したい。これは、これまでのところうまく機能している:追加された入力フィールドデータをmySQLデータベースに挿入するにはどうすればよいですか?
<?php
if (isset($_POST['submit_val'])) {
if ($_POST['name']) {
foreach ($_POST['name'] as $key=>$value) {
$pdo = $db->prepare('INSERT INTO friends (name) values(:name) ');
$pdo->execute(array(
':name' => $value,
));
}
}
echo "<i><h2><strong>" . count($_POST['name']) . "</strong> items added</h2></i>";
}
?>
<?php if (!isset($_POST['submit_val'])) { ?>
<form method="post" action="">
<div id="container">
<p id="add_field"><a href="#"><span>Click To Add</span></a></p>
</div>
<input type="submit" name="submit_val" value="Submit" />
</form>
<?php } ?>
<script type="text/javascript">
var counter = 0;
$(function() {
$('p#add_field').click(function() {
counter += 1;
$('#container').append(
'<strong>No. ' + counter + '</strong><br />' + '<input id="field_' + counter + '" name="name[]' + '" type="text" /><br/>');
});
});
</script>
しかし、私はまた、フィールドだけでなくname
、age
とgender
として持つことを望む:
$('#container').append('<strong>No. ' + counter + '</strong><br />' + '<input id="field_' + counter + '" name="name[]' + '" type="text" /><input id="field_' + counter + '" name="age[]' + '" type="text" /><input id="field_' + counter + '" name="gender[]' + '" type="text" /><br/>');
およびそれらをデータベースに追加します。
$pdo = $db->prepare('INSERT INTO friends (name,age,gender) values(:name,:age,:gender) ');
$pdo->execute(array(
':name' => $value,
':age' => $value,
':gender' => $value,
));
しかし、今私は理解の論理的な問題があります。 foreachループに他の値を取得するにはどうすればいいですか?foreach ($_POST['name'] as $key=>$value) {
すべての値に1つのループが必要なので、どうすればいいですか?
私はこのようなものを想像することができます:すべての3つのフィールドの発生を想定し
foreach ($_POST['name'] as $key=>$name && $_POST['age'] as $key=>$age && $_POST['gender'] as $key=>$gender) {
はい、それがうまく機能しています! – Jarla