現時点では、json から msg[0].box msg[1].box などの形式で値を返すスクリプトを使用しています。ユーザーが 2 つの項目を入力しても問題ありません。しかし、ユーザーがそれ以上入力した場合はどうなるでしょうか。私の友人は、jquery の各関数を調べて複数の値を返すことを提案しましたが、私は jquery にかなり慣れていないので、誰かが私のコードを使用してこれを達成するのを手伝ってくれたらありがたいです。
また、値が返されたときに firebug に json タブがなく、reposnse と html だけである理由についても混乱しています。これは正常ですか?区切り文字として , を使用して値を入力することに注意してください。
phpコード
$dept = mysql_real_escape_string($_POST['customerdept']);
$company = mysql_real_escape_string($_POST['BA_customer']);
$address = mysql_real_escape_string($_POST['customeraddress']);
$service = mysql_real_escape_string($_POST['BA_service']);
$box = mysql_real_escape_string($_POST['BA_box']);
$date = DateTime::createFromFormat('d/m/Y', $_POST['BA_destdate']);
$destdate = $date -> format('Y-m-d');
$authorised = mysql_real_escape_string($_POST['BA_authorised']);
$activity = 'New Intake';
$submit = mysql_real_escape_string($_POST['submit']);
$boxerrortext = 'You must enter a box for intake';
$array = explode(',', $_POST['BA_box']);
if (isset($_POST['submit'])) {
foreach ($array as $box) {
$form=array('dept'=>$dept,
'company'=>$company,
'address'=>$address,
'service'=>$service,
'box'=>$box,
'destroydate'=>$destdate,
'authorised'=>$authorised,
'submit'=>$submit);
$result[]=$form;
}
echo json_encode( $result );
}
jqueryコード
submitHandler: function() {
if ($("#BA_boxform").valid() === true) {
var data = $("#BA_boxform").serialize();
$.post('/sample/admin/requests/boxes/boxesadd.php', data, function(msg) {
$("#BA_addbox").html("You have entered box(es): " + "<b>" + msg[0].box + " " + msg[1].box + "</b><br /> You may now close this window.");
//console.log(msg[0].box);
$("#BA_boxform").get(0).reset();
}, 'json');
} else
{
return;
}
},
success: function(msg) {
//$("#BA_addbox").html("You have entered a box");
//$("#BA_boxform").get(0).reset();
}