Hello,i m newer to the php.
my problem is...
i have one form with textfield and multiple selection listbox. i select multiple values form listbox, implode it with comma and put all values in single database field. its working.
But, i cant retrieve them with explode function . i want to put all array's values in listbox , but with selected, so that the user can get an idea about previous selection.
Could anyone please help me?
urtrivedi 276 Nearly a Posting Virtuoso
Following code may help you
<html>
<body>
<form>
<!-- copy following php code at the place where you are populating your list box-->
<?php
/*
set $mywholearray from database
this array contains all master values to be shown in listbox
$mywholearray[0]['id']='pkvalue',
$mywholearray[0]['desc']='description',
*/
/*set $myselarray from database
this array contains only those values which are selected and stored in database
$myselarray[0]['id']='pkvalue'
*/
$elementstring ="\n<SELECT id='listbox' size=10 name='listbox' multiple>";
for ($i=0;$i<count($mywholearray);$i++)
{
$seltext="";
for($j=0;$j<count($myselarray);$j++)
{
if ($mywholearray[$i]['id']==$myselarray[$j])
{
$seltext=" selected ";
break;
}
}
$elementstring .= "\n";
$elementstring .= "<OPTION value='{$mywholearray[$i]['id']}' {$seltext}>";
$elementstring .="{$mywholearray[$i]['desc']}</OPTION>";
}
$elementstring .="\n</SELECT>";
echo $elementstring;
?>
</form>
</body>
</html>
Edited by urtrivedi because: n/a
Pooja J. 0 Light Poster
Hi,I am trying to solve following php prob. from three days, but it fails.Please help me.
I have one php form with Name(textbox) and multivalue listbox with values mumbai, pune, nasik, surat, dhule. It work when user submits name and multiple cities as follows,
//insert.php
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db('state');
$name=$_POST['name'];
//$city=$_POST['city'];
$abc=$_POST['city'];
for ($i=0; $i<count($abc); $i++)
{
$city = $city." ".$abc[$i];
}
$submit=$_POST['submit'];
if(!empty($submit))
{
$query=mysql_query("insert into city(name,city) values('$name','$city')");
}
?>
Above code is working. But the problem is that, I want listbox on another page, this listbox should display the name of all cities, but should show all that cities which the selected while submitting the form with selected.
//show.php
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db('state');
$query=mysql_query("select city from city where id=7");
$row=mysql_fetch_array($query);
$one=$row["city"];
$pieces = explode(" ", $one);
//echo $pieces[0]; // piece1
?>
<body>
<select name="city[]" size=5 multiple="multiple">
<option value="pune"<?php if ($pieces[1] == 'pune')
{
echo
'selected="selected"';
} ?>>pune</option>
<option value="mumbai"<?php if ($pieces[2] == 'mumbai') { echo
'selected="selected"'; } ?>>mumbai</option>
<option value="nasik"<?php if ($pieces[3] == 'nasik') { echo
'selected="selected"' ;} ?>>nasik</option>
<option value="surat"<?php if ($pieces[4] == 'surat') { echo
'selected="selected"'; } ?>>surat</option>
<option value="dhule"<?php if ($pieces[5] == 'dhule') { echo
'selected="selected"'; } ?>>dhule</option>
</select>
</body>
It doen't work.Could anyone tell me that what should I do?
Edited by kvprajapati because: Added [code] tags. For easy readability, always wrap programming code within posts in [code] (code blocks).
pushpakalpana 1 Newbie Poster
<? $cat=$city; //fetch $city according to ur query.
$catrr=explode(",",$cat); //explode.
//echo $catrr;
?>
<select name="t_city[]" size="5" multiple="multiple" class="normal_text" id="t_class" style="width: 150px;">
<?
if(!$_SESSION[user])
{
?>
<option selected="selected" value="select">Select Class</option>
<?
}
?>
<? $cat_query=mysql_query("select * from city ");
while($cat_data=mysql_fetch_array($cat_query)) {
?>
<option value="<?=$cat_data['city'] ?>"<?if(in_array($cat_data['city'],$catrr)) {?> selected="selected" <? } ?>><?=ucfirst($cat_data['city'])?></option>
<? } ?></select>
Edited by pushpakalpana because: n/a
muralibobby2015 17 Posting Pro
//insert.php
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db('state');
$name=$_POST;
//$city=$_POST;
$abc=$_POST;
for ($i=0; $i<count($abc); $i++)
{
$city = $city." ".$abc[$i];
}
$submit=$_POST;
if(!empty($submit))
{$query=mysql_query("insert into city(name,city) values('$name','$city')");
}?>
Above code is working. But the problem is that, I want listbox on another page, this listbox should display the name of all cities, but should show all that cities which the selected while submitting the form with selected.
//show.php
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db('state');
$query=mysql_query("select city from city where id=7");
$row=mysql_fetch_array($query);
$one=$row["city"];$pieces = explode(" ", $one);
//echo $pieces[0]; // piece1
?>
<body>
<select name="city[]" size=5 multiple="multiple">
<option value="pune"<?php if ($pieces[1] == 'pune')
{
echo
'selected="selected"';
} ?>>pune</option>
<option value="mumbai"<?php if ($pieces[2] == 'mumbai') { echo
'selected="selected"'; } ?>>mumbai</option>
<option value="nasik"<?php if ($pieces[3] == 'nasik') { echo
'selected="selected"' ;} ?>>nasik</option>
<option value="surat"<?php if ($pieces[4] == 'surat') { echo
'selected="selected"'; } ?>>surat</option>
<option value="dhule"<?php if ($pieces[5] == 'dhule') { echo
'selected="selected"'; } ?>>dhule</option></select>
</body>It doen't work.Could anyone tell me that what should I do?
use in_array like this
<?if(in_array(pune, $pieces)) {?> selected="selected" <? } ?>
Pooja J. 0 Light Poster
use in_array like this
<?if(in_array(pune, $pieces)) {?> selected="selected" <? } ?>
<select name="t_city[]" size="5" multiple="multiple" id="t_class" style="width: 150px;">
<?
if(!$_SESSION[user])
{
?>
<option selected="selected" value="pune">mumbai</option>
<?
}
?>
<? $cat_query=mysql_query("select * from city ");
while($cat_data=mysql_fetch_array($cat_query)) {
?>
<option value="<?=$cat_data['city'] ?>"<?if(in_array(pune, $pieces)) { selected="selected" <? } ?></option>
<option value="<?=$cat_data['city'] ?>"<?if(in_array(mumbai, $pieces)) { selected="selected" <? } ?></option>
<option value="<?=$cat_data['city'] ?>"<?if(in_array(nasik, $pieces)) { selected="selected" <? } ?></option>
<option value="<?=$cat_data['city'] ?>"<?if(in_array(surat, $pieces)) { selected="selected" <? } ?></option>
<option value="<?=$cat_data['city'] ?>"<?if(in_array(dhule, $pieces)) { selected="selected" <? } ?></option>
<? } ?></select>
Am I doing right?
But it doesn't work.
Edited by kvprajapati because: Added [code] tags. For easy readability, always wrap programming code within posts in [code] (code blocks).
muralibobby2015 17 Posting Pro
hey,
wat you are doing ? totally you mixed code of pushpa.
Pooja J. 0 Light Poster
I am totally confuse guys!
I don't have exact solution yet.
Please help me.:?:
hey,
wat you are doing ? totally you mixed code of pushpa.
muralibobby2015 17 Posting Pro
<?
$query=mysql_query("select city from city where id=7");
$row=mysql_fetch_array($query);
$cat=$row[city];
$catrr=explode(",",$cat);
?>
<select name="t_city[]" size="5" multiple="multiple" class="normal_text" id="t_class" style="width: 150px;">
<?
if(!$cat)
{
?>
<option selected="selected" value="select">Select city</option>
<?
}
?>
<? $cat_query=mysql_query("select * from citynames"); //create citynames which you are using other wise use array
while($cat_data=mysql_fetch_array($cat_query)) {
?>
<option value="<?=$cat_data['city'] ?>"<? if(in_array($cat_data['city'],$catrr)) {?> selected="selected" <? } ?>><?=ucfirst($cat_data['city'])?></option>
<? } ?></select>
rajabhaskar525 1 Junior Poster
hi ,
first store the cities in database separeted with cammas(",");
and check the multiful values are stored in database or not.
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db('state');
$name=$_POST['name'];
//$city=$_POST['city'];
$abc=$_POST['city'];
for ($i=0; $i<count($abc); $i++)
{
$city = $city.",".$abc[$i];
}
$submit=$_POST['submit'];
if(!empty($submit))
{
$query=mysql_query("insert into city(name,city) values('$name','$city')");
}
?>
and explode the cities with cammas(",");
check with echo's the values display or not.
<?php
$con=mysql_connect("localhost","root","");
$db=mysql_select_db('state');
$query=mysql_query("select city from city where id=7");
$row=mysql_fetch_array($query);
$one=$row["city"];
$pieces = explode(",", $one);
//echo $pieces[0]; // piece1
?>
<body>
<select name="city[]" size=5 multiple="multiple">
<option value="pune"<?php if ($pieces[1] == 'pune')
{
echo
'selected="selected"';
} ?>>pune</option>
<option value="mumbai"<?php if ($pieces[2] == 'mumbai') { echo
'selected="selected"'; } ?>>mumbai</option>
<option value="nasik"<?php if ($pieces[3] == 'nasik') { echo
'selected="selected"' ;} ?>>nasik</option>
<option value="surat"<?php if ($pieces[4] == 'surat') { echo
'selected="selected"'; } ?>>surat</option>
<option value="dhule"<?php if ($pieces[5] == 'dhule') { echo
'selected="selected"'; } ?>>dhule</option>
</select>
</body>
try like this.
urtrivedi 276 Nearly a Posting Virtuoso
I am not exploding $one and using our own code with minor changes. I am only changing condition and echoing only selected instead of selected="selected"
<body>
<select name="city[]" size=5 multiple="multiple">
<option value="pune"<?php if (substr_count($one, 'pune') > 0 )
{
echo
'selected';
} ?>>pune</option>
<option value="mumbai"<?php if (substr_count($one, 'mumbai') > 0) { echo
'selected'; } ?>>mumbai</option>
<option value="nasik"<?php if (substr_count($one, 'nasik') > 0) { echo
'selected' ;} ?>>nasik</option>
<option value="surat"<?php if (substr_count($one, 'surat') > 0) { echo
'selected'; } ?>>surat</option>
<option value="dhule"<?php if (substr_count($one, 'dhule') > 0) { echo
'selected'; } ?>>dhule</option>
</select>
</body>
Be a part of the DaniWeb community
We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.