わかりましたので、私の問題はこれです:
姓、名、市区町村を入力するフォームがあります。ユーザーが送信をクリックすると、情報が次の表に表示されます。
<p>You entered the following data:</p>
<form action="1.php" method="post">
<input type="hidden" name="action" value="update">
<input type="hidden" name="city" value="<?php echo $user->get_city(); ?>">
<table>
<tr>
<th>First Name:</th>
<td><?php echo $user->get_fname(); ?></td>
<td><input type="button" id="edit_fname" value="Edit"></td>
<td><input type="text" id="fname" name="fname" size="20"></td>
<td><input type="hidden" id="valf" name="val" value="fname">
<input type="hidden" id="lnf" name="lname" value="<?php echo $user->get_lname(); ?>">
<input type="submit" id="subfn" value="Submit"></td>
</tr>
<tr>
<th>Last Name:</th>
<td><?php echo $user->get_lname(); ?></td>
<td><input type="button" id="edit_lname" value="Edit"></td>
<td><input type="text" id="lname" name="lname" size="20"></td>
<td><input type="hidden" id="vall" name="val" value="lname">
<input type="hidden" id="fnf" name="fname" value="<?php echo $user->get_fname(); ?>">
<input type="submit" id="subln" value="Submit"></td>
</tr>
<tr>
<th align="right">City:</th>
<td><?php echo $user->get_city(); ?></td>
<td> </td>
</tr>
</table>
</form>
したがって、ユーザーが編集ボタンをクリックすると、送信ボタンとともにテキスト ボックスが表示され、名前の編集か姓の編集かに応じて、フォームと共に送信する適切な非表示の値があります。唯一の問題は、名前フィールドの [送信] ボタンをクリックしても、非表示の入力 'val' が 'lname' に設定されることです。
ここにjqueryがあります:
$().ready = function() {
$('#fname').hide();
$('#lname').hide();
$('#subfn').hide(); // submit button for first name
$('#subln').hide(); // submit button for last name
$('#valf').hide(); // hidden value for fname so we know to post lname
$('#vall').hide(); // hidden value for lname so we know to post fname
$('#lnf').hide(); // hidden value to post last name when first name edit submit
$('#fnf').hide(); // hidden value to post first name when last name edit submit
$("#edit_fname").click(function() {
$('#fname').show();
$('#subfn').show();
$('#valf').show();
$('#lnf').show();
if ($('#lname').show) { // if last name edit is showing, hide it
$('#lname').hide();
$('#subln').hide();
$('#vall').hide();
$('#fnf').hide();
}
});
$("#edit_lname").click(function() {
$('#lname').show();
$('#subln').show();
$('#vall').show();
$('#fnf').show();
if ($('#fname').show()) { // if first name edit is showing, hide it
$('#fname').hide();
$('#subfn').hide();
$('#valf').hide();
$('#lnf').hide();
}
});
}();
[送信] ボタンがクリックされ、「アクション」が「更新」に変更されたときの PHP は次のとおりです。
case 'update':
$val = $_POST['val'];
if ($val == 'fname') {
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$city = $_POST['city'];
$user = new User($fname, $lname, $city);
break;
}
else if ($val == 'lname') {
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$city = $_POST['city'];
$user = new User($fname, $lname, $city);
break;
}
$val が何であるかを確認するためにテストしましたが、何があっても「lname」に固執しているようです。したがって、私のjQueryコードに問題があると思います。または、問題は姓の「val」値が何があっても送信されていることです。名ボタンをクリックします。
これはすべて、私が OOP を学ぶのに役立つ実験的なものです。明らかに、これは製品コードではありません。私は現在、応用科学の準学士号を取得するための 1 年生で、コンピューター サイエンスの学士号を取得するまであと何年もあります。これはクラスの一部でさえありません...私はただ退屈していて、プログラミングを本当に楽しんでいます.
それで、誰でも助けることができると思いますか?こんなに長い投稿でごめんなさい!