I want to make a dropdownlist that contains something from my database, all going well until I need to give each of the option unique id
<div class="div3" >
<select id="input2" class="drop" name="a" required>
<option value="" selected disabled>a</option>
<?php while ($row1 = mysqli_fetch_array($result)) :; ?>
<option class="option"><?php echo $row1[0]; ?></option>
<?php endwhile; ?>
</select>
</div>
Put an id unique value in option tag, and order you code for make an array with html tag, for example if $row1[0] = uniqueid and $row1[1] = name
<?php while ($row1 = mysqli_fetch_array($result)){?>
<option id="<?php echo $row1[0]; ?>" class="option"><?php echo $row1[1]; ?></option>
<?php }?>
Best Regards
I just want to insert the value or the name of PROVINCE, CITY and BARANGAY to the database. I'm new in PHP i'm a little confused about this one.
PHP
<?php
session_start();
$link=mysqli_connect("localhost","root","");
mysqli_select_db($link,"mknr2");
if(isset($_POST['submit'])){
$province = $_POST['province'];
$city = $_POST['city'];
$barangay = $_POST['barangay'];
$sql = "INSERT INTO users(PROVINCE, CITY, BARANGAY) VALUES ('$province','$city','$barangay')";
if($link->query($sql) === TRUE){
echo "Sent!";
}
else{
echo "Error:" . $sql . "<br>" . $link->error;
}
}
?>
HTML
<h2 style="font-size:20px;font-weight:bolder;font-family:arial;margin-left:2%;">Address</h2>
<!-- PROVINCE -->
<select id="provincedd" name="province" onchange="change_province()" class="province">
<option>Select</option>
<?php
$res=mysqli_query($link,"select * from province");
while($row=mysqli_fetch_array($res)) {
?>
<option value="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></option>
<?php } ?>
</select>
<!-- PROVINCE -->
<select id="city" name="city" class="city">
<option>Select</option>
</select>
<select id="barangay" name="barangay" class="barangay">
<option>Select</option>
</select>
AJAX.php
<?php
$link=mysqli_connect("localhost","root","");
mysqli_select_db($link,"mknr2");
if(isset($_GET["province"]))
{
$province=$_GET["province"];
$res=mysqli_query($link,"select * from city where province_id=$province");
echo "<select id='citydd' onchange='change_city()'>";
echo "<option>"; echo "Select"; echo "</option>";
while($row=mysqli_fetch_array($res))
{
echo "<option value='$row[id]' selected >"; echo $row["name"]; echo "</option>";
}
echo "</select>";
}
if(isset($_GET["city"]))
{
$city=$_GET["city"];
$res=mysqli_query($link,"select * from barangay where city_id=$city");
echo "<select>";
echo "<option>"; echo "Select"; echo "</option>";
while($row=mysqli_fetch_array($res))
{
echo "<option value='$row[id]' selected>"; echo $row["name"]; echo "</option>";
}
echo "</select>";
}
?>
JAVASCRIPT
<script type="text/javascript">
function change_province()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax.php?province="+document.getElementById("provincedd").value,false);
xmlhttp.send(null);
city.style.display = "block";
document.getElementById("city").innerHTML=xmlhttp.responseText;
if(document.getElementById("provincedd").value=="Select")
{
document.getElementById("barangay").innerHTML="<select><option>Select</option></select>";
}
}
function change_city()
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax.php?city="+document.getElementById("citydd").value,false);
xmlhttp.send(null);
document.getElementById("barangay").innerHTML=xmlhttp.responseText;
}
</script>
you have set Inside set value to option value and insert this option value in database .
<select name="id" required="" onchange="change_province()" class="province">
<option value="">SELECT CITY</option>
<?php
$res=mysqli_query($link,"select * from province");
while($row=mysqli_fetch_array($res)) {
?>
<option value="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></option>
<?php } ?>
</select>
data insert
<?php
session_start();
$link=mysqli_connect("localhost","root","");
mysqli_select_db($link,"mknr2");
if(isset($_POST['submit'])){
$province = $_POST['province'];
$city = $_POST['city'];
$id= $_POST['id'];
$sql = "INSERT INTO users(PROVINCE, CITY, BARANGAY) VALUES ('$province','$city','$id')";
if($link->query($sql) === TRUE){
echo "Sent!";
}
else{
echo "Error:" . $sql . "<br>" . $link->error;
}
}
?>
Whats wrong with your code?
your select box will not have any option to select
as i can see in code
(a)you have not assigned any values to it.
<select id="city" name="city" class="city">
<option>Select</option>
</select>
<select id="barangay" name="barangay" class="barangay">
<option>Select</option>
</select>
(b)your javascript to call ajax.php which render select box with options will never executed as change_province,change_city functions will not be executed on any event
in this case if your form will be submitted without selecting province,on server side your post array will be like following
["submit"=>"value of submit","province"=>"","city"=>"","barangay"=>""]
now if you take look on your code to insert value your query for inserting data will be like this
INSERT INTO users(PROVINCE, CITY, BARANGAY) VALUES '','','')
causing to insert new record with id(in case id is auto-increment and these values are nullable)
What should you do?
(a)instead of making ajax call to fill select box you should render them at once inside form view
formview.php
<h2 style="font-size:20px;font-weight:bolder;font-family:arial;margin-left:2%;">Address</h2>
<!-- PROVINCE -->
<select id="provincedd" name="province" onchange="change_province()" class="province">
<option>Select</option>
<?php
$res=mysqli_query($link,"select * from province");
while($row=mysqli_fetch_array($res)) {
?>
<option value="<?php echo $row["id"]; ?>"><?php echo $row["name"];?></option>
<?php } ?>
</select>
<!-- PROVINCE -->
<?php
$res=mysqli_query($link,"select * from city");
echo "<select id='citydd' onchange='change_city()'>";
echo "<option>"; echo "Select"; echo "</option>";
while($row=mysqli_fetch_array($res))
{
echo "<option value='$row[id]' selected >"; echo $row["name"]; echo "</option>";
}
echo "</select>";
$res=mysqli_query($link,"select * from barangay");
echo "<select>";
echo "<option>"; echo "Select"; echo "</option>";
while($row=mysqli_fetch_array($res))
{
echo "<option value='$row[id]' selected>"; echo $row["name"]; echo "</option>";
}
echo "</select>";
?>
(b)inside your code to insert data ,you should put some server side(also front-end) validation before making insert to data table(you can search google for it),this will prevent any empty entry to be inserted.
hope this will help you.
<form method="post" id="employee" action="change.php">
<select id="employeename" name="employeename" onchange="this.form.submit()">
<?php
while ($row = mysql_fetch_array($result))
{
echo "<option value='".$row['name']."'>".$row['name']."</option>";
}
?>
</select>
</form>
The form will be submitted when select value is changed,
Once the form is submitted, it will redirect to the same page. How do I set the selected option value with the one I just selected?
Change your form, especially the <select> dropdown list in the following way,
<form method="post" id="employee" action="change.php">
<select id="employeename" name="employeename" onchange="this.form.submit()">
<?php
while ($row = mysql_fetch_array($result)){
$output = "<option value='".$row['name']."'";
if($_POST['employeename'] == $row['name']){
$output .= " selected='selected'";
}
$output .= ">".$row['name']."</option>";
echo $output;
}
?>
</select>
</form>
<form method="post" id="employee" action="change.php">
<select id="employeename" name="employeename" onchange="this.form.submit()">
<?php
while ($row = mysql_fetch_array($result))
{
if($_POST['employeename']==$row['name'])
echo "<option value='".$row['name']."' selected>".$row['name']."</option>";
else
echo "<option value='".$row['name']."'>".$row['name']."</option>";
}
?>
</select>
</form>
just marked as selected if you find selected key in available list.
How do I hide 'role' selection option until 'project' is selected and then query role where project selected = $project?
I only want to select a role corresponding to its project. The table selectproject contains a row with $id_project, $project and $role. I would like to select the role based on first selecting a project. Ex: "select $role where selected = $project".
How do I use Java script or Ajax to accomplish this? Please provide code for I am still learning Java/Ajax.
<?php
$result4= mysqli_query($con, $idq);
echo '<select id="project" name="project" class="textBox">';
echo '<option value="">-Select-</option>';
while ($row = $result4->fetch_assoc()){
?>
<option value="<?php echo $row['project']; ?>"><?php echo $row['project']; ?></option>
<?php
}
echo "</select>";
?>
<?php
$result5= mysqli_query($con, $idq2);
echo '<select id="role" name="role" class="textBox2">';
echo '<option value="">-Select-</option>';
while ($row = $result5->fetch_assoc()){
?>
<option value="<?php echo $row['role']; ?>"><?php echo $row['role']; ?></option>
<?php
}
echo "</select>";
?>
I'm trying to post the values that I get from each dropdown menu, this is an n-level, however I'm going to use them maximum of 3. How can I post every value i get from each selection?
<?php
include('dbcon.php');
if($_REQUEST)
{
$id = $_REQUEST['parent_id'];
$query = "select * from ajax_categories where pid = ".$id;
$results = #mysql_query( $query);
$num_rows = #mysql_num_rows($results);
if($num_rows > 0)
{?>
<select name="sub_category" class="parent">
<option value="" selected="selected">-- Sub Category --</option>
<?php
while ($rows = mysql_fetch_assoc(#$results))
{?>
<option value="<?php echo $rows['id'];?>"><?php echo $rows['category'];?></option>
<?php
}?>
</select>
<?php
}
else{echo '<label style="padding:7px;float:left; font-size:12px;">No Record Found !</label>';}
}
?>
http://www.99points.info/2010/12/n-level-dynamic-loading-of-dropdowns-using-ajax-and-php/
change the select option of your like this
<select name="sub_category" class="parent">
<option value="" selected="selected">-- Sub Category --</option>
while ($rows = mysql_fetch_assoc(#$results))
{?>
echo '<option value="'.$row['id'].'">'.$rows['category'].'</option>';
<?php
}?>
</select>
<?php
}
else{echo '<label style="padding:7px;float:left; font-size:12px;">No Record Found !</label>';}
}
</select>