Jump to content

How to search a string - String Function in a text box?


pazazuzu

Recommended Posts

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

 

 

<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>   ";

                      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 - 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>

Sorry about that.  First time posting here.  I was trying to see if there was any help.  I haven't been able to find anything in various forums to assist me, that is why I am posting.  I have tried a few other sites as well.  I take online courses so no tutoring is available. 

 

I will try to post my php code better next time. 

 

 

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.