LebDev LebDev - 3 months ago 8
jQuery Question

search using 3 options with hidden input type do not work

i have a search page that allow user to search about other members using 3 types even by


  • governorate

  • district

  • village



and i am using one form and one button for all the three types with 3 different hidden values

but the problem is that the system do not make action when select just the governorate

so can anyone help me ????

code:



<?php
//**********search by locationn***************************************//
if(isset($_POST['listbyq']))
{
//********************by governorate**************************************//
if($_POST['listbyq']=="by_gov")
{
$bygov = $_POST['governorate'];
$sql = mysql_query("SELECT user_id,first_name, last_name, birth_date, registered_date, governorate_name
FROM members u INNER JOIN governorate g
ON u.governorate = g.governorate_id WHERE governorate = '$bygov'")or die(mysql_error("Error: querying the governorate"));

$num_row = mysql_num_rows($sql);
if($num_row > 0 )
{
while($row = mysql_fetch_array($sql))
{
$row_id = $row['user_id'];
$row_first_name = $row['first_name'];
$row_last_name = $row['last_name'];
$row_birthdate = $row['birth_date'];
$row_registered_date = $row['registered_date'];
$row_gov = $row['governorate_name'];

////***********for the upload image*************************//
$check_pic="members/$row_id/image01.jpg";
$default_pic="members/0/image01.jpg";
if(file_exists($check_pic))
{
$user_pic="<img src=\"$check_pic\"width=\"120px\"/>";
}
else
{
$user_pic="<img src=\"$default_pic\"width=\"120px\"/>";
}

$outputlist.='
<table width="100%">
<tr>
<td width="23%" rowspan="4"><div style="height:120px;overflow:hidden;"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$user_pic.'</a></div></td>
<td width="14%"><div align="right">Name:</div></td>
<td width="63%"><a href = "http://localhost/newadamKhoury/profile.php?user_id='.$row_id.'" target="_blank">'.$row_first_name.' '.$row_last_name.'</a></td>
</tr>

<tr>
<td><div align="right">Birth date:</div></td>
<td>'.$row_birthdate.'</td>
</tr>
<tr>
<td><div align="right">Registered:</div></td>
<td>'.$row_registered_date.'</td>
</tr>

<tr>
<td><div align="right">Governorate</div></td>
<td>'.$row_gov.'</td>
</tr>
</table>
<hr />
';

}
}

}
}
else
{
$errorMSG = "No Member has the listed location!!";
}
?>


HTML CODE



<table width="94%" height="63">
<tr>
<td width="29%"><form id="form1" method="post" action="member_search2.php">

<h3>Search by Location</h3><br />
<?php require_once('location_fields.php'); ?>
<input type="hidden" name="listbyq" value="by_gov" />
<input type="hidden" name="listbyq" value="by_dist" />
<input type="hidden" name="listbyq" value="by_city" />
<input type="submit" name="searchbylocation" id="button" value="go" />
</form></td>
</tr>
</table>

Answer

This is because you are assigning the same name to all your input field name="listbyq", so change name to be different among them so you can retrieve in different variables

<input type="hidden" name="listbyq" value="by_gov" />
<input type="hidden" name="listbyqa" value="by_dist" />
<input type="hidden" name="listbyqb" value="by_city" />

Now you can use them respectively in your if statements

 if($_POST['listbyq'] == 'by_gov')
 if($_POST['listbyqa'] == 'by_dist')
 if($_POST['listbyqb'] == 'by_city')

Then I would like to remember you that mysql_ functions are deprecated so i would advise you to switch to mysqli or PDO and indeed you are at risk of sql injection, have a look here How to prevent SQL injection in PHP?. You should use prepared statment to avoid any risk