How do I search a string within a text input box? (String Manipulation)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • pazazuzu
    New Member
    • Apr 2010
    • 2

    How do I search a string within a text input box? (String Manipulation)

    Hi everyone,

    I currently have an assignment which I am almost done with but am having problems trying to figure out how to integrate a string function search. I have a text box called $targetstring. My program allows users to input items such as groceries into one text box (item_value) and add an amount to the groceries purchased (amount_value).

    The program will add the amounts and give a total and will validate the amount_value box for inputs that are not numerical and give an error count if anything other than a number is entered.

    I have also added to radio buttons that let you sort the array of values into ascending or descending order.

    Everything works fine but I am trying to add one other feature. A text input box called $targetstring that will allow a user to input any text, be it a phrase, letters or single letter and then the program will search all the values input into the item_value text boxes and will highlight them yellow if they match any of the variables entered into the $targetstring input box.

    I have included my code. This last part of the assignment is driving me crazy so any help would be greatly appreciated.

    Thanks,
    Mike


    Code:
    <html>
    <head>
    <title>Assignment </title>
    </head>
    
    <body>
    
    <body style="font-family: Arial, Helvetica, sans-serif; color: black;">
       
    <h1>My Bills</h1>
    
    
    <form method=post>
    
    <br><b>Sort order for items:</b>
    <br>
    <br> 
    
    <?php
    
    	$sort_order = $_POST['sort_order']; //added code for asgn 6
    	
    	$targetstring = $_POST['targetstring'];  //added code for asgn 7
    	
    	
    	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>&nbsp;&nbsp;&nbsp;";
    			print "Descending <input type=radio name=sort_order value=desc checked>&nbsp;&nbsp;&nbsp;";
    			break;
    
    		default :
    
    			print "Ascending <input type=radio name=sort_order value=asc checked>&nbsp;&nbsp;&nbsp;";
    			print "Descending <input type=radio name=sort_order value=desc>&nbsp;&nbsp;&nbsp;";
    			break;
    
    	}
    		
    		
    	$sort_line = array();  //Declare an empty array - added code for asgn 6
    	
    	
    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 - added code for asgn 6
    	} else {
    	sort($sort_line);  //Sorts array in place - added code for asgn 6
    		   }
    
    
    ?>
    
    
    <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 - added code for asgn 6
    	
    
    	$amount_name='amount'.$row;  // assign values
    
    	$array_counter = $row - 1;  //To make sure to get element 0 in the array - added code for asgn 6
    
    	
    	list($item_value_from_array, $amount_value_from_array) = explode('*',$sort_line[$array_counter]);
    			
    	
    	print"<tr>\n";
    	print"<td><input type=text name=".$item_name." value='$item_value_from_array'></td>\n"; // prints rows with saved values - added code for asgn 6
    	print"<td><input type=text name=".$amount_name." value='$amount_value_from_array'></td>\n"; // prints rows with saved values - added code for asgn 6
    
    	
    	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>
    Last edited by Atli; Apr 16 '10, 11:25 AM. Reason: Added [code] tags.
Working...