Hello I have some input but one of them is disabled ( yes and i need it for my time sheet )but how do I send it autocomplete.php to insert.php I\'ve this error Undefined in
use the attribute readonly
instead of disabled
.
you get an error because an disabled element is not sent when the form is submitted and thus is not present in $_POST
(there simply is no $_POST['client1']
in your case)
edit edited: the examples were not complete - as the accepted answer states, the name
attribute must be present, too
<input type="text" name="client1" class = "client" size="12" id ="client1" value="something" readonly />
or
<input type="text" name="client1" class = "client" size="12" id ="client1" value="something" readonly="readonly" />
if you want to have a more xml-like syntax.
Here is an idea of how you can solve this
<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>
You can even remove name from the first input.
With this, your disabled input will still be displayed but php will post the value in your hidden input field.
You can use
<?php echo !empty($text)?$text:'';?>
to populate the value
fields as shown in some answers here
TLDR;
<form action="index.php" method="post">
<input type="text" disabled value="my_value"/>
<input hidden name="client" value="my_value"/>
</form>
If you want it disabled so it does not change in the DB, then you do not have to POST it. Use the SELECT to populate the <input>
and add the attribute "disabled".
<?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>
use the answer from cypherabe: https://stackoverflow.com/a/22990008/2780941