Title

Tuesday, 20 January 2015

multiple explode and foreach, while searching a `input` value in txt file html/php/ajax


Actaully I have to search a input value from a txt file, when keydown event is triggered (it means the search function take place as alphabetically). That txt file has multiple lines and keys.

Now firstly let me describe the whole scenario with appropriate code.

HTML Code:

 <input type="text" name="searchval" />   <div></div>     $(document).ready(function(){   $('input').bind('keydown',function(){   setTimeout(search($(this).val().toLowerCase()),2000);   });   });     function search(v){   $.ajax({   url:'search.php',   type:'get',   data:'sv='+v,   dataType:'json',   cache:false,   success:function(r){$('div').empty();for(var i in r){$('div').append(r[i]+",");}},   error:function(a,b,c){$('body').append(b+'<hr/>');}   });   }

PHP Code:

 //ADD DATA TO TXT FILE   $file = "UL.txt";   if((!file_exists($file)) || (0 == filesize($file))){   $data = "$name|$email|Offline";   }else{   $data = "\r\n$name|$email|Offline";   }   $fp = fopen("UL.txt", "a") or die("Couldn't open file for writing!");   fwrite($fp, $data) or die("Couldn't write values to file!");   fclose($fp);

`UL.txt'

 Abc Def|abc@def.com|Offline   Ghi Jkl|ghi@jkl.com|Offline   Mno Pqr|mno@pqr.com|Offline   Stu Vwxyz|stuv@wxyz.com|Offline   ....

search.php:

 header('Content-Type: application/json');   $search = array();   if($_SERVER["REQUEST_METHOD"] == "GET"){   $searchMe = $_GET['sv'];   $F = file("UL.txt");   foreach($F as $k1 => $v1) {   $d1[$k1] = explode("|", $v1);   $email[] = strtolower(trim($d1[$k1][1])); //$d1[$k1][1];   $name[] = strtolower(trim($d1[$k1][0])); //$d1[$k1][0];   foreach($email as $k2 => $v2){   if($v2 == $searchMe){   $search[] = $v2;   }else{   $search = 'NO RESULT';   }   }   }   }   echo json_encode($search);

Now, this code doesn't work.

Instead of $v2, $search[] must return the name:email:status IF $searchMe matchs $email or $name, but I don't know how to do this. Means how to match words by words and use the keys to assign the whole line to the $search[].

Thanks & Regards.

Answer

No comments:

Post a Comment