tja , jag har gjort snabbsökning function...när jag söker så gå sidan till search.php sen visar den resultatet , hur gör jag för att skipa att sidan går till search.php och visa resultatet direkt efter sökninge ?
Ska du ha ut resultat på samma sida som formuläret så är det på det viset, du kan ju slänga sök scriptet i en fil för sig.
<?php include("search.php"); ?>
..Resten av sidan..
Annar är det ju ajax då men då ska du hämtar resultatet med javascript, det snygga med det är att man aldrig laddar om sidan.
Ajax: först och främst ladda hem jquery på jquery.com
Tryck på download och kopiera den text som kommer upp, lägg detta i en js fil.
exempel: jquery.js
Sen tog jag ett exempel bara från jquery.com som jag antar funkar.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<form action="search.php" id="searchForm">
<input type="text" name="username" placeholder="Search..." />
<input type="submit" value="Search" />
</form>
<!-- the result of the search will be rendered inside this div -->
<div id="result"></div>
<script type="text/javascript">
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
term = $form.find( 'input[name="username"]' ).val(),
url = $form.attr( 'action' );
/* Send the data using post and put the results in a div */
$.post( url, { s: term },
function( data ) {
var content = $( data ).find( '#content' );
$( "#result" ).empty().append( content );
}
);
});
</script>
</body>
</html>
När man skickar data med ajax så får man tillbaka allt som php sidan matar ut, dvs ehco.
jag gjorde som du sa men det funkade inte helt o hållet , söker jag på admin så blir länken "...page.php?username=admin" och stannar på sidan som man var på ... jag tror att det är denna delen av koden är fel :
term = $form.find( 'input[name="username"]' ).val(),
när jag går in i nåns annans profile så visar länken "../page.php?name=profile&id=3" så tänkte om vi kanske borde ha
term = $form.find( 'input[name="name=profile&id="]' ).val(),
samt lägga in php koden
$info['id']
..... Går det ens att sätta php koder i en jquery script :)?
Nä det går inte att köra php koder i jquery.
jquery är javascript och det körs på klienten, php körs på servern.
Och bara för att du ser en massa dollar tecken så har det inte att göra med PHP.
Jag är inte så haj på jquery så.
Men lite fel blev det ju så vi ändrar lite:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<form action="page.php" method="post">
<input type="hidden" name="search" value="seach" />
Sök efter:<br />
<input type="text" name="username" />
<br /><br />
<input type="submit" value="SÖK" />
</form>
<!-- the result of the search will be rendered inside this div -->
<div id="result"></div>
<script type="text/javascript">
/* attach a submit handler to the form */
$("#searchForm").submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
/* get some values from elements on the page: */
var $form = $( this ),
term = $form.find( 'input[name="username"]' ).val(),
search = $form.find( 'input[name="search"]' ).val(),
url = $form.attr( 'action' );
/* Send the data using post and put the results in a div */
$.post( url, { username: term, search: search },
function( data ) {
var content = $( data ).find( '#content' );
$( "#result" ).empty().append( content );
}
);
});
</script>
</body>
</html>
Det är ju lite upp till dig också att lära sig, läs på om jquery, ajax och lär dig hur man kan använda det tillsammans med formulär, php och hur och när man får tillbaka data.
Vad är meningen med ditt sök script?
Du söker på en medlem, får du en träff så skickas man till dennes profil direkt.
<?php
$result = "";
if (isset($_POST['search']))
{
$username = mysql_real_escape_string($_POST['username']);
$sql = mysql_query("SELECT `id`, `username`, `picture` FROM `members` WHERE `username` LIKE '%". $username ."%'") or die(mysql_error());
if (mysql_num_rows($sql) == 0)
{
$result = "Ingen träff";
}
else
{
while ( $info = mysql_fetch_array ( $sql ))
{
if (mysql_num_rows($sql) == 1)
{
//Kör med header här istället för att skriva ut document.location med javascript.
header('Location: page.php?name=profile&id='. $info['id']);
}
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="page.php" method="post">
<input type="hidden" name="search" value="seach" />
Sök efter:
<br />
<input type="text" name="username" />
<br /><br />
<input type="submit" value="SÖK" />
<br>
<?php echo $result; ?>
</form>
</body>
</html>
asså detta vara endast en del av scripten , menningen var att om man får en träff så går man till profilen direkt... får man flera än en träff så går man till search.php och visar alla personer... denna scripten är i search.php.
det jag tänkte göra var en lite genväg (snabb sökning), får man träff då går man till profilen får man flera träffar eller inga så går man till search.php som är en mer avancerad sökning. btw TACK SÅ MYCKET !!!! är väldigt tacksam för din hjälp
1. Du vill ha en PHP-funktion/metod som söker i din SQL-databas och returnerar ett resultat
2. Du vill ha en Javasript-funktion/metod som tar hand om resultatet som din PHP-funktion returnerar (jag rekommenderar att du använder JSON för detta)
Du behöver alltså skapa en PHP-fil med en funktion för sökning, vilket du har en bra början på.
Sedan behöver du skapa en Javascriptfunktion för sökningen som du kopplar via XmlHttpRequest till din PHP-funktion, och som uppdaterar en del av din HTML DOM:
// Javascriptfunktion för att söka
function perform_search(searchword) {
// XmlHttpRequest-objektet skall kallas här...
Väldigt enkelt! Och du behöver defintivt inte använda jQuery för detta ändamål. jQuery är ett stort ramverk som är byggt i Javascript. Det underlättar för oss utvecklare och är ett sätt att standardisera utveckling. Men i ditt fall rekommenderar jag dig att testa XmlHttpRequest-objektet DIREKT, utan att använda jQuery - då kommer du enklare lära dig hur saker och ting fungerar med det s.k. "AJAX" (Asynchronous Javascript And XML) innan du grottar ner dig i ett ramverk som du nu för tillfället ej behöver.
260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849