Problema php relativo a funzione di un pulsante

Giancarlo Lupo

Nuovo Utente
5 Mar 2016
6
0
0
Salve a tutti, sono nuovissimo del forum e chiedo il vostro aiuto per risolvere un piccolo problema relativo a un codice php:

PHP:
<!-- table of search -->

<form id="searchgiftregistry" method="POST" action="<?php echo $link ?>" >
<input name="searchgiftregistry" value="1" type="hidden" />
<table class="" style="margin-top: 112px; margin-bottom: 1px;">
  <tr>
    <td><label><?php echo __('',GIFTREGISTRY_TEXT_DOMAIN) ?></label></td>
  </tr>
  <tr>
    <td><input class="input-text4" type="text" name="grname" <?php if( isset($_SESSION['registrynamesearch'])) {?> value="<?php echo $_SESSION['registrynamesearch'] ?>" <?php }?>></td>
  </tr>
  
  <tr>
   <td><input class="cerca-lista2" type="submit" name="submit" value="<?php echo __('Cerca Lista' , GIFTREGISTRY_TEXT_DOMAIN) ?>"></td>
  </tr>
</table>
</form>
<!-- end table of search -->

Praticamente questa parte di codice gestisce un piccolo form in cui gli utenti del sito possono accedere e visualizzare la propria lista nascita. Il problema credo sia nella riga
PHP:
 <td><input class="cerca-lista2" type="submit" name="submit" value="<?php echo __('Cerca Lista' , GIFTREGISTRY_TEXT_DOMAIN) ?>"></td>
se provate ad entrare su http://mondo-piccino.com e nel box a sinistra sotto lo slide iniziale inserite la keyword 'listaprova' troverete una lista, ed eccoci arrivati al problema reale: se do l'ok il sistema mi ricarica la home e al successivo click sul pulsante cerca lista mi accede alla pagina, vorrei che il tutto non fosse effettuato con un ricarica home che non ha senso.

Grazie mille a tutti per le risposte.
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Ciao,
PHP è un linguaggio server side, quindi da solo non può lavorare in modo asincrono (senza aggiornare la pagina): la soluzione è usare AJAX. Per citare Wikipedia:
In informatica AJAX, acronimo di Asynchronous JavaScript and XML, è una tecnica di sviluppo software per la realizzazione di applicazioni web interattive (Rich Internet Application). Lo sviluppo di applicazioni HTML con AJAX si basa su uno scambio di dati in background fra web browser e server, che consente l'aggiornamento dinamico di una pagina web senza esplicito ricaricamento da parte dell'utente.
Se sei deciso a procedere per questa strada, posso aiutarti a scrivere il codice necessario :)
 

Giancarlo Lupo

Nuovo Utente
5 Mar 2016
6
0
0
Ciao,
PHP è un linguaggio server side, quindi da solo non può lavorare in modo asincrono (senza aggiornare la pagina): la soluzione è usare AJAX. Per citare Wikipedia:

Se sei deciso a procedere per questa strada, posso aiutarti a scrivere il codice necessario :)

Ci possiamo provare! quali sono le soluzioni altrimenti?
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Fatto!
Javascript:
Codice:
//modifica queste variabili
var id_campo = "campo_ricerca"; //id dell'input di ricerca
var id_risultati = "risultati_ricerca"; //id del div in cui mettere i risultati della ricerca
//qui comincia il codice vero e proprio
function richiestaAjax(){
 var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]
 if (window.ActiveXObject){
  for (var i=0; i<activexmodes.length; i++){
   try{
	return new ActiveXObject(activexmodes[i])
   }
   catch(e){
   }
  }
 }
 else if (window.XMLHttpRequest)
  return new XMLHttpRequest()
 else
  return false
}
function carica(url){
	document.getElementById("risultati_ricerca").innerHTML = "Attendere, ricerca in corso..."
	var richiesta=new richiestaAjax()
	richiesta.onreadystatechange=function(){
		if (richiesta.readyState==4){
			if (richiesta.status==200 || window.location.href.indexOf("http")==-1){
				var risultato = richiesta.responseText
				document.getElementById(id_risultati).innerHTML = risultato
			}
			else{
				document.getElementById(id_risultati).innerHTML="Si &egrave; verificato un errore! Controlla la tua connessione ad Internet e riprova."
			}
		}
	}
	var termine_ricerca = "s=" + encodeURIComponent(document.getElementById(id_campo).value)
	richiesta.open("POST", url, true)
	richiesta.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
	richiesta.send(termine_ricerca)
}
HTML:
HTML:
<input type="text" id="campo_ricerca"><input type="button" value="cerca" onclick="carica('pagina_ricerca.php');">
<div id="risultati_ricerca">I risultati della ricerca appariranno qui.</div>
In pagina_ricerca.php dovrai inserire il codice php che effettua la ricerca e mostra i risultati. La/e parola/e cercata/e saranno contenute in $_POST['s'].
Per una demo, clicca qui

Fammi sapere se hai problemi nell'integrare il codice nel tuo sito o se hai dubbi :)
 

Giancarlo Lupo

Nuovo Utente
5 Mar 2016
6
0
0
ciao altutto, ti ringrazio molto per il codice ma ho diverse difficoltà nel caricarlo e renderlo funzionale sul mio sito.
Cerchiamo insieme passo passo di caricarlo?
Incollo tutto il codice php che gestisce la ricerca da parte del plugin della pagina interessata, cosi magari è tutto più chiaro e mi puoi dare qualche dritta su come inserire le variabili come creare il file pagina_ricerca.php dove caricarlo, dove copiare il js e dove caricarlo, il tutto sapendo che stiamo lavorando su Wordpress.

Ecco il codice:

PHP:
<?php     
wp_enqueue_style('thickbox');
wp_enqueue_script('thickbox');    

$acount_page = get_page_by_path('my-account');

$account_link = get_permalink( get_option('woocommerce_myaccount_page_id'));
$my_account_page_url = get_permalink( get_option('woocommerce_myaccount_page_id'));
$w_page = get_permalink( get_option('follow_up_emailgiftregistry_page_id'));;
$http_schema = 'http://';
if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'])  {
	$http_schema = 'https://';
}
	
$request_link  = $http_schema. $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ;
	
if (strpos($request_link, '?') > 0)  {
	$buy_link = $w_page. '&giftregistry_id=';
} else {
	$buy_link =$w_page . '?giftregistry_id=';

}

$giftregistry_id = get_option('follow_up_emailgiftregistry_page_id');

$giftregistry_page_path = get_permalink($giftregistry_id);


?>

<!-- Table of result -->

<?php 
$collection = array();
 		global $giftregistryresult;

if (isset($_SESSION['registryresult'])) $collection = $_SESSION['registryresult'];
$collection =$giftregistryresult ;

if (!empty($collection)) { 
?>
  <?php foreach ($collection as $item) {
  	$link =$buy_link .$item['id'];
	
  ?>

  <?php  } ?>
<?php  } ?>



<!-- End of result -->
<!-- table of search -->

<form id="searchgiftregistry" method="post" action="<?php echo $link ?>" >
<input name="searchgiftregistry" value="1" type="hidden" />
<table class="" style="margin-top: 112px; margin-bottom: 1px;">
  <tr>
    <td><label><?php echo __('',GIFTREGISTRY_TEXT_DOMAIN) ?></label></td>
  </tr>
  <tr>
    <td><input class="input-text4" type="text" name="grname" <?php if( isset($_SESSION['registrynamesearch'])) {?> value="<?php echo $_SESSION['registrynamesearch'] ?>" <?php }?>></td>
  </tr>
  
  <tr>
    <td> 
    
    <input class="cerca-lista2" type="submit" name="submit" onclick="alert('Ci sei quasi! Clicca su OK, reinserisci il codice lista e il gioco è fatto!')" value="<?php echo __('Cerca Lista' , GIFTREGISTRY_TEXT_DOMAIN) ?>"></td>
    
  </tr>
  
</table>

</form>


<!-- end table of search -->


</ul>

Se serve qualsiasi altra cosa fammi sapere
Grazie Mille
 

Altutto

Utente Attivo
30 Set 2013
262
0
16
stubborn.altervista.org
Ciao Giancarlo,
Scusami per il ritardo nel risponderti e per aver dimenticato di specificare dove andassero messi i codici che ho postato.
Non conosco bene la struttura di Wordpress, ma il codice Javascript dovrebbe andare in tutte le pagine che hanno un campo di ricerca, mentre invece pagina_ricerca.php dovrebbe essere la pagina del plugin che mostra come output soltanto i risultati, senza i tags <head> o <body>. Se non riesci a trovare quel file, è possibile che sia necessario adattarne uno esistente, fammi sapere se riesci, altrimenti sarò felice di aiutarti :)
 
Discussioni simili
Autore Titolo Forum Risposte Data
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
A Problema checkout carrello php PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
M Problema con php per calcolo costo percentuale PHP 7
O Problema Formmail in PHP su Aruba PHP 0
WebmasterFioriniAndrea Chat e php [problema] PHP 3
L [PHP] Problema con Telegram PHP 1
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
K Help: problema con uno script di booking in php! PHP 0
A [PHP] Problema query insert [RISOLTO] PHP 14
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
M [PHP] Problema con query select PHP 2
L Problema jQuery validation AJAX (PHP 7) PHP 6
L Problema funzione mail() PHP PHP 3
S [PHP] Problema con istruzione "use" PHP 23
A Problema PHP PHP 1
T [php] problema creazione query select-where PHP 5
M [PHP] problema if PHP 3
L [PHP] Problema su codice o server PHP 5
T [PHP] problema maggiore e minore PHP 4
Cosina [PHP] fwrite problema con le parole accentate PHP 9
M [PHP] Problema search form PHP 3
F [PHP] Problema con number_format PHP 3
L [PHP] problema count messo in una funzione. PHP 1
P [PHP] Progettino CRUD di esercitazione. Problema su $_FILE. PHP 9
trattorino [PHP] problema entrata immagini insert PHP 1
C Apache Cordova problema con php Programmazione 1
trattorino problema raccapricciante php conteggio query PHP 4
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
MattiaBL [PHP] Problema ciclo while PHP 3
dvdscr [PHP] Problema malfunzionamento Wordpress WordPress 13

Discussioni simili