Cześć.
Chciałbym się dowiedzieć jak wykorzystać ajaxa i php do wykonania zależnego menu rozwijanego, tzn. jeżeli wybiorę w pierwszym menu jakąś opcję, to zawęzi mi się lista w drugim, po wybraniu elementu z drugiego menu rozwijanego chciałbym, aby z bazy, z tej samej tabeli pobrały się dwie inne wartości i pokazały w inputach po to, żeby to wszystko zapisać do tabeli zbiorczej.
Na yt jest kilka tutoriali jak zrobić coś podobnego ale zawsze kończy się to na jednym inpucie a ja chciałbym 2 lub więcej.
Przykład na potrzeby przedstawienia problemu.
index.php
<select name="submenu" id="submenu" class="form-control action">
<option value="">Select submenu</option>
<?php echo $submenu; ?>
</select>
<br />
<select name="name" id="name" class="form-control action">
<option value="">Select name</option>
</select>
<br />
<select name="budget" id="budget" class="form-control">
<option value="">Select budget</option>
</select>
<script>
$(document).ready(function(){
$('.action').change(function(){
if($(this).val() !='')
{
var action = $(this).attr("id");
var query = $(this).val();
var result = '';
if(action == "submenu")
{
result = 'name';
}
else
{
result = 'budget';
}
$.ajax({
url: "f.php",
method:"POST",
data:{action:action, query:query},
success:function(data){
$('#'+result).html(data);
}
})
}
});
});
</script>
f.php
<?php
include ("db.php");
if(isset($_POST["action"]))
{
$output='';
if($_POST["action"] === "submenu")
{
$result=sqlsrv_query($conn, "SELECT name FROM blog_categories_submenu where submenu = '".$_POST["query"]."'GROUP BY name",
array(), array( "Scrollable" => 'keyset' ));
$output .= '<option value="">Select name</option>';
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){
$output .='<option value="'.$row["name"].'">'.$row["name"].'</option>';
}
}
if($_POST["action"] === "name")
{
$result=sqlsrv_query($conn, "SELECT budget FROM blog_categories_submenu where name = '".$_POST["query"]."'",
array(), array( "Scrollable" => 'keyset' ));
while($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){
$output .='<option value="'.$row["budget"].'">'.$row["budget"].'</option>';
}
}
echo $output;
}