私はテキストフィールドField name
と2つのボタン(Insert field, Show fields)
を持つページを持っています。動的に作成されたフィールドから値を取得し、Ajax経由でPHPに送信します
ユーザーは、新しいフィールドの名前になる最初のテキストフィールド内に値を挿入します。 Insert field
をクリックすると、その値がデータベースに送信され、TBL_FIELDS
という表に挿入されます。
そしてShow fields
をユーザーがクリックすると、ページがロードさTBL_FIELDS
からのすべてのフィールド名とロードされた名前を含むそれのプレースホルダとNテキストフィールドを作成します。
これらのフィールドは別のボタンInsert values
を含む.fieldList
divの内部に表示され、ユーザーがクリックすると、これらの動的に作成されたフィールドとそのプレースホルダーからすべての値を取得し、別のデータベーステーブルTBL_VALUES
と呼ばれるこのテーブルには、フィールドの名前(プレースホルダ)を表すID
,FIELD_NAME
、フィールドの値を表すFIELD_VALUE
の3つのカラムがあります。
私の質問は、これらの動的に作成されたすべてのフィールドから値とプレースホルダを取得し、Ajax経由で.phpファイルに送信するにはどうすればいいですか?私は.val()
を使用して値を取得し、プレースホルダを取得するには.attr('placeholder')
を使用することができますが、それは正確に私の問題ではない、私の問題は、どのくらいのフィールドがあるか、どのように私はそれらにアクセスすることができますかわからない$_POST
。
これは私がこれまでのところ、ここでscript.jsだたものです:
$(document).ready(function(){
var fieldCount = 0;
$("#btnFieldSend").click(function(){
if($("#txtFieldName").val()) {
$.ajax({
type: 'post',
dataType: 'json',
url: 'insertField.php',
data: { txtFieldName: $("#txtFieldName").val() }
}).done(function(data){
if(data.ok) {
$("#txtFieldName").val('');
alert(data.ok);
}
else
alert(data.err);
})
}
});
$("#btnFields").click(function(){
if($(".fieldList").is(":hidden")) {
$.ajax({
dataType: 'json',
url: 'selectField.php'
}).done(function(data){
if(data.ok) {
fieldCount = data.fieldCount;
for(var i = 0; i < fieldCount; i++)
$(".appField").append('<input id="' + i + '" type="text" placeholder="' + data.fieldName[i][0] + '">');
$(".fieldList").show();
}
else
alert(data.err);
});
}
});
$("#insertValues").click(function(){
// send values
});
});
してください、私は私のためにこれを行うには誰も求めていないよということに気づく、私は私がのために任意のコードを提供していないよ知っています$("#insertValues").click()
フィールドからすべての値を取得してphpに送信し、それを受け取るPHPコードがありません。私はちょうど立ち往生して、何をやるべきかわからないので、これを解決する方法を私に導く助けが必要です。
私のHTML、insertField.php
、selectField.php
、多分私のSQLスクリプトを表示する必要がある場合は、私に知らせてください。
ありがとうございました!私は '.serialize()'を使ったことがありません。本当に便利です!私は入力からプレースホルダーを得る方法を尋ねるつもりでしたが、私は 'TBL_FIELDS'の' ID'を外部キーとして使うことでより良い解決策を見出しました。 –