Jump to content

String Manipulation Question - Textbox Search


pazazuzu

Recommended Posts

Hello,

 

I have been having problems with some code I am writing and have not been able to figure out what I am doing wrong, even after some debugging.

 

I have a textbox that users can input any letters into, that should should search the item field boxes and highlight any matching strings.  If a matching search is made, then the item box should remain yellow, and the other item boxes should be white.

 

It does not have to be a perfect match.  Any letter that matches, such as the letter '"j" in the word "juice" should be enough to make the item field box, highlight yellow.

 

I am including my code but have not been able to figure out how to use this code:

 

str_ireplace($targetstring, '<span style="background-color:#ff0000;">' . $targetstring . '</span>', $item_value);

 

(I must be doing something wrong)  Any help with this would be greatly appreciated.

 

Thanks.

 

 

 

<html>


<head>

<title>testcode</title>

</head>


<body>

<body style="font-family: Arial, Helvetica, sans-serif; color: black;">
   
<h1>Test</h1>


<form method=post>

   
<br><b>Sort order for items:</b>
<br>
<br> 
   

<?php

$sort_order = trim($_POST['sort_order']); 

$targetstring = trim($_POST['targetstring']);


if (isset($_POST['Submit'])) //The following code is intended to retain the choice of the radio button chosen by the user


$sort_order = $_POST['sort_order'];

switch($sort_order)
{
	case 'desc' :
		print "Ascending <input type=radio name=sort_order value=asc>   ";
		print "Descending <input type=radio name=sort_order value=desc checked>   ";
		break;

	default :

		print "Ascending <input type=radio name=sort_order value=asc checked>   ";
		print "Descending <input type=radio name=sort_order value=desc>   ";
		break;

}

$sort_line = array();  //Declare an empty array 

for ($row = 1; $row <5 ; $row++) // creates rows that are less than 5
{

$item_name='item'.$row; // assign values
$item_value=$_POST[$item_name]; // assign values

$amount_name='amount'.$row;  // assign values
$amount_value=$_POST[$amount_name]; // assign values


$myelement = "$item_value*$amount_value*";


array_push($sort_line, $myelement); //Adds $myelement to the end of the $sort_line array


}	

if ($sort_order == 'desc')
{
rsort($sort_line);  //Sorts array in place
} else {
sort($sort_line);  //Sorts array in place
	   }


?>


<br />
<br />


<br><b>Find Items that Contain:</b>
<input type=text name=targetstring size=20>
<br>
<br>


<table>

<tr>
<th>Item</th><th>Amount</th>
</tr>


<?php


$err_cnt = 0;
$total_amt = 0;
$read_ctr = 1;	



for ($row = 1; $row <5 ; $row++) // creates rows that are less than 5

{		
$item_name='item'.$row; // assign values

$array_counter = $row - 1;  //To make sure to get element 0 in the array 



$amount_name='amount'.$row;  // assign values

$array_counter = $row - 1;  //To make sure to get element 0 in the array 


list($item_value_from_array, $amount_value_from_array) = explode('*',$sort_line[$array_counter]);




str_ireplace($targetstring, '<span style="background-color:#ff0000;">' . $targetstring . '</span>', $item_value);  // can not figure out the string manipulation for the search text box



if ($targetstring == $item_value_from_array) 
{
	print "<td><input type=text name=$item_name value='".$item_value_from_array."' style=\"background-color: Yellow;\"></td>\n";
	//print "<td><input type=text name=$item_name value='".$item_value_from_array."'></td>\n";
	print "<td><input type=text name=".$amount_name." value='$amount_value_from_array'></td>\n";
} else {
	print "<td><input type=text name=$item_name value='".$item_value_from_array."'></td>\n";
	//print "<td><input type=text name=$item_name value='".$item_value_from_array."' style=\"background-color: Yellow;\"></td>\n";
	print "<td><input type=text name=".$amount_name." value='$amount_value_from_array'></td>\n";
}


list($item_read, $amount_read) = explode("*", $sort_line[$array_counter]); // attempting to break up the Array elements into variables using explode function



if (!empty($amount_read)) //if amount value is not empty
{
	if (is_numeric($amount_read)) // checks to see if amount value is a numeric number
	{
		$total = $total + $amount_read; //adds the total of the amount column and created the $total variable
	} else {
		print"<td><font color=red>Amount: $amount_read is not a number</font></td>"; // if amount value is not numberic then prints error in red
		$error_count++; // counts number of invalid amounts
	}
}

print"</tr>\n";
}


?>


</table>


<?php
if ($error_count >0) // if statement checking to see if errors; if there are, then prints them. If not then prints total amount only
{
	print"<br>Errors: $error_count"; // prints total of invalid amount errors
} else {
	print"<br>Total: $total"; // prints total of amounts
}


?>


<br><br><input type=submit value=Submit>

<br>

<br>


</form>
</body>
</html>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.