こんにちは私はいくつかの入力を持っていますが、そのうちの1つは無効になっています(はい、私はタイムシートにそれが必要です)しかし、autocomplete.phpをinsert.phpに送信するにはどうすればよいですか? 30行目のwww\testlp\insert.php
ここに私のコードautocomplete.php
<form action = 'insert.php' method="post" >
<input type="text" name="client1" class = "client" size="12" id ="client1" disabled />
</form>
ここに私のコードinsert.php
session_start();
$date = $_POST['data'] ;
$client1 = $_POST['client1'] ;
echo($client1);
echo($date);
[〜#〜] edit [〜#〜]私はこれを試しました:
<input type="text" name="client1" class = "client" size="12" id ="client1"readonly />
ここでエラー:Notice: Undefined index: client1 in C:\wamp\www\testlp\insert.php on line 12
readonly
の代わりに属性disabled
を使用してください。
フォームの送信時に無効化された要素が送信されず、$_POST
に存在しないため、エラーが発生します(ケースでは$_POST['client1']
はありません)。
編集が編集されました:例は完全ではありませんでした-受け入れられた回答が示すように、name
属性も存在する必要があります
<input type="text" name="client1" class = "client" size="12" id ="client1" value="something" readonly />
または
<input type="text" name="client1" class = "client" size="12" id ="client1" value="something" readonly="readonly" />
よりXMLに似た構文が必要な場合。
これをどのように解決できるかについてのアイデアはここにあります
_<form action = 'insert.php' method="post" >
<input type="text" name="client1" class="client" size="12" id="client1" disabled />
<input hidden name="client1" value="inserted_value_of_client1"/>
</form>
_
最初の入力から名前を削除することもできます。
これにより、無効な入力は引き続き表示されますが、phpは非表示の入力フィールドに値を投稿します。
<?php echo !empty($text)?$text:'';?>
を使用してvalue
フィールドにデータを入力できます。
TLDR;
_<form action="index.php" method="post">
<input type="text" disabled value="my_value"/>
<input hidden name="client" value="my_value"/>
</form>
_
DBで変更されないように無効にする場合は、POSTする必要はありません。SELECTを使用して<input>
と属性「無効」を追加します。
<?php
if ( !empty($_POST)) {
$other_inputs= $_POST['other'];
$valid = true;
if (empty($text)) {
$valid = false;
}
if ($valid) {
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE table set text = ? WHERE id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($other_inputs,$id);
}
} else {
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM table where id = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id));
$data = $q->fetch(PDO::FETCH_ASSOC);
$text = $data['client1'];
}
?>
<form action = 'insert.php' method="post" >
<input type="text" name="client1" class = "client" size="12" id ="client1" disabled vlaue="<?php echo !empty($text)?$text:'';?>" />
</form>