Autor Zpráva
protom1
Profil
čau lidi prosím vás pomozte mi už si nevím rady jak to mám řešit. Dělám live search a za prvý nevím jak mám udělat, aby to vždy při vymazání textu z inputu zmizlo. A za druhý mi to hlasí tuhle hlášku .. Parse error: syntax error, unexpected '>' in D:\wamp\www\zk\in-search.php on line 10

Díky za rady ..

index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MGL-FREE</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="javascript" src="ajax_framework.js"></script>
</head>

<body>
<center>
<h2>Ajax Search Engine</h2>

<form id="searchForm" name="searchForm" method="post" action="javascript:insertTask();">
<div class="searchInput">
<input name="searchq" type="text" id="searchq" size="30" onkeyup="javascript:searchNameq()"/>
<input type="button" name="submitSearch" id="submitSearch" value="Search" onclick="javascript:searchNameq()"/>
</div>
</form>
    
            <h3>Search Results</h3>
            <div id="msg">Type something into the input field</div>
            <div id="search-result"></div>
    </center>
        
</div>
</body>
</html>

ajax_framework.js
/* ---------------------------- */
/* XMLHTTPRequest Enable */
/* ---------------------------- */
function createObject() {
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
request_type = new ActiveXObject("Microsoft.XMLHTTP");
} else {
request_type = new XMLHttpRequest();
}
return request_type;
}

var http = createObject();

/* -------------------------- */
/* SEARCH */
/* -------------------------- */
function searchNameq() {
searchq = encodeURI(document.getElementById('searchq').value);
document.getElementById('msg').style.display = "block";
document.getElementById('msg').innerHTML = "Searching for <strong>" + searchq+"";
// Set te random number to add to URL request
nocache = Math.random();
http.open('get', 'in-search.php?name='+searchq+'&nocache = '+nocache);
http.onreadystatechange = searchNameqReply;
http.send(null);
}
function searchNameqReply() {
if(http.readyState == 4){
var response = http.responseText;
document.getElementById('search-result').innerHTML = response;
}
}

in-search.php
<?php
include('dbcon.php');
$searchq = $_GET['searchq'];
$getName_sql = 'SELECT * FROM song
WHERE name LIKE "%' . $searchq .'%"
$getName = mysql_query($getTask_sql);
$total = mysql_num_rows(getTask);

while ($row = mysql_fetch_array($getName)) {
echo $row.name . '<br/>';
}
?>

dbcon.php
<?php
$hostname_conn = "localhost";
$database_conn = "test";
$username_conn = "root";
$password_conn = "";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database_conn,$conn);
?>
juriad
Profil
Na řádce:
WHERE name LIKE "%' . $searchq .'%"
ti chybí apostrof a středník:
WHERE name LIKE "%' . $searchq .'%"';
protom1
Profil
juriad
dobrý no dík to byla ta chyba, ale teď jich tam je 3x tolik :))
) Notice: Undefined index: searchq in D:\wamp\www\zk\in-search.php on line 3
Call Stack
#    Time    Memory    Function    Location
1    0.0012    248688    {main}( )    ..\in-search.php:0

Notice: Undefined variable: getTask_sql in D:\wamp\www\zk\in-search.php on line 6
Call Stack
#    Time    Memory    Function    Location
1    0.0012    248688    {main}( )    ..\in-search.php:0

) Notice: Use of undefined constant getTask - assumed 'getTask' in D:\wamp\www\zk\in-search.php on line 7
Call Stack
#    Time    Memory    Function    Location
1    0.0012    248688    {main}( )    ..\in-search.php:0

Warning: mysql_num_rows() expects parameter 1 to be resource, string given in D:\wamp\www\zk\in-search.php on line 7
Call Stack
#    Time    Memory    Function    Location
1    0.0012    248688    {main}( )    ..\in-search.php:0
2    0.0040    251360    mysql_num_rows ( )    ..\in-search.php:7

 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\wamp\www\zk\in-search.php on line 9
Call Stack
#    Time    Memory    Function    Location
1    0.0012    248688    {main}( )    ..\in-search.php:0
2    0.0047    251432    mysql_fetch_array ( )    ..\in-search.php:9
Tabetha
Profil
Chyba 1 - mal by si asi radšej dať
$searchq = isset($_GET['searchq']) ? $_GET['searchq'] : null; 

Chyba 2 - nikde nemáš zadefinovanú premenná
$getTask_sql

Chyba 3 - Zmeň (predpokladám, ale nevidel som tam taktiež túto premennú)
$total = mysql_num_rows(getTask); na $total = mysql_num_rows($getTask);

Chyba 4 - súvisí s chybou 3

Chyba 5 - nemôžeš odovzdávať hodnotu boolean, ale resource
protom1
Profil
takze to mam prepsat na co ? nejsem si ted jistej jako - chyba 5
jenikkozak
Profil
(Zastaralá) funkce mysql_query vrací false, protože je chybně sestaven SQL dotaz. Zřejmě proto, že jsi zaměnil proměnnou $getTask_sql za $getName_sql.
protom1
Profil
jenikkozak řešil sem to takto ...
<?php
include('dbcon.php');
$searchq = isset($_GET['searchq']) ? $_GET['searchq'] : null;
$getName_sql = 'SELECT * FROM song
WHERE name LIKE "%' . $searchq .'%"';
$getName = mysql_query($getName_sql);
$total = mysql_num_rows($getName);

while ($row = mysql_fetch_array($getName)) {
    print_r($row);
    echo " name:" . $row[0];
}
?>

zadna chyba tam neni, ale mám tam Array ( [0] => tears in heaven [name] => tears in heaven ) name:tears in heaven a co teď ? :)
Tabetha
Profil
:) čo je teraz ta problém konkrétne
protom1
Profil
Tabetha:
Teď už mám i tohle .., ale teď to druhý mohli by ste se prosím podívat někdo na ten js ... protoze kdyz napisu do vyhledavani treba t najdemi to tears in havean z databaze .. , potom to vymazu to t a misto toho aby to teats in ahvean zmozlo tak tam zustava ..
Tabetha
Profil
Skus dat podmienku na searchq v JS, aby ked je prazdna hodnota toho inputu tak nastavis prazdny obsah toho html.
protom1
Profil
Dík, hele dost si mi poradil, ale přišel sem na to, že tenhle den byl celej zbytečnýho psaní, protože to je celý v get a to je v pici, už pracuji na jiném, takže pokud budeš chtít, tak ti potom pošlu zdroják, aby ses podíval, protože si mi v tomhle poradil nejvíc :)) a řekneš mi k tomu svý :))
Tabetha
Profil
vôbec nemáš začo :) podľa môjho, tie chyby boli len z nepozornosti, takže som ti možno ušetril len chvíľku :) ale môžeš mi to potom poslať :) rád sa pozriem a prípadne vyjadrím ;)
protom1
Profil
Tabetha:

<?php
include("connection.php");

$html = '';
$html .= '<li class="result">';
$html .= '<a target="_blank" href="urlString">';
$html .= '<h3>nameString</h3>';

$html .= '</a>';
$html .= '</li>';

// Get Search
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = mysql_real_escape_string($search_string);

// Check Length More Than One Character
if (strlen($search_string) >= 1 && $search_string !== ' ') {
    // Build Query
    $query = 'SELECT * FROM song WHERE name LIKE "%'.$search_string.'%"';

    // Do Search
    $result = mysql_query($query);
    //exit;
    while($results = mysql_fetch_array($result)) {
        $result_array[] = $results;
    }
//exit;
    // Check If We Have Results
    if (isset($result_array)) {
        foreach ($result_array as $result) {

            // Format Output Strings And Hightlight Matches
            //
            $display_name = preg_replace("/".$search_string."/i", "<b class='highlight'>".$search_string."</b>", $result['name']);
            $display_url = ').'&lang=en]http://php.net/manual-lookup.php?pattern='.urlencode($result['name']).'&lang=en';

            // Insert Name
            $output = str_replace('nameString', $display_name, $html);

            // Insert URL
            $output = str_replace('urlString', $display_url, $output);

            // Output
            echo($output);
        }
    }else{

        // Format No Results Output
        $output = str_replace('urlString', 'javascript:void(0);', $html);
        $output = str_replace('nameString', '<b>No Results Found.</b>', $output);
        $output = str_replace('funcStr', 'Sorry :(', $output);

        // Output
        echo($output);
    }
}

?>

/
/* JS File */

// Start Ready
$(document).ready(function() {  

    // Icon Click Focus
    $('div.icon').click(function(){
        $('input#search').focus();
    });

    // Live Search
    // On Search Submit and Get Results
    function search() {
        var query_value = $('input#search').val();
        $('b#search-string').html(query_value);
        if(query_value !== ''){
            $.ajax({
                type: "POST",
                url: "search.php",
                data: { query: query_value },
                cache: false,
                success: function(html){
                    $("ul#results").html(html);
                }
            });
        }return false;    
    }

    $("input#search").live("keyup", function(e) {
        // Set Timeout
        clearTimeout($.data(this, 'timer'));

        // Set Search String
        var search_string = $(this).val();

        // Do Search
        if (search_string == '') {
            $("ul#results").fadeOut();
            $('h4#results-text').fadeOut();
        }else{
            $("ul#results").fadeIn();
            $('h4#results-text').fadeIn();
            $(this).data('timer', setTimeout(search, 100));
        };
    });

})
Tabetha
Profil
vyzerá to pekne :)

otázka
strlen($search_string) >= 1 && $search_string !== ' '
nemohlo by to byť? Či ma len nenapadá hodnota, ktorú to u teba môže nadobudnúť
!empty($search_string)
protom1
Profil
Tabetha
jo možná jo :)) dík zkusím to jeste nejak vylepsit, ale jak to tahkle je tak to taha presne co chci :))
Tabetha
Profil
:) a ešte akú verziu PHP tam máš, že či by ti nevyšlo najlepšie využívať už mysqli

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: