2010-09-28 6 views
2

J'ai ceci:

<form action="profiles.php" method="POST" name="SearchSimple" id="SearchSimple" > 
<input name="search" id="s" style="width: 150px;" type="text"> 
     <a style="display: inline-block; width: 100px; font-weight: bold; cursor: pointer;" id="submitSearchSimple">Search </a> 
      <script> 
         $('#submitSearchSimple').click(function() { 
    javascript:document.SearchSimple.submit(); 
     }); 
      </script> 
</form> 

Il présente bien, bien que quand je fais

if($_POST["submitSearchSimple"] && isset($_POST["submitSearchSimple"])) { 
echo $_POST["s"] . " -TEST"; 
} 

Il ne montre pas .. Je ne reçois rien

+0

'if ($ _POST [ "submitSearchSimple"] && isset ($ _ POST ["submitSearchSimple"])) 'doit être l'inverse: vous testez' isset' pour savoir si la variable existe en premier lieu, pour éviter d'essayer d'accéder à une variable cela n'existe pas (ce qui entraîne un avertissement) D'où: 'if (isset ($ foo) && $ foo)' pour tester "si la variable existe et la variable est vrai-ish". if (! empty ($ foo)) '. – deceze

Répondre

2

En PHP, les variables POST ne fonctionnent que pour les éléments INPUT, les éléments SELECT & également dans un FORM, uniquement lorsque le formulaire est soumis. Vous devez également spécifier l'attribut "name" de ces éléments à capturer/utiliser par la variable de tableau POST superglobal. Rappelez-vous toujours qu'il existe une différence majeure dans PHP avec JavaScript/jQuery

In your case, you can simply do this:- 
if(isset($_POST["search"]) && !empty($_POST["search"])) { 
    echo $_POST["search"] . " -TEST"; 
} 
En JavaScript/jQuery, vous pouvez utiliser l'attribut "id" ou l'attribut "name" pour valider/manipuler les champs. Mais en PHP, c'est toujours l'attribut "name" du champ qui est important, alors faites attention à cela.

Espérons que ça aide.

+0

' isset ($ _ POST ["recherche"]) &&! empty ($ _ POST ["search"]) 'est à moitié redondant Vous pouvez ignorer la vérification' isset' – deceze

+0

@deceze - Il existe des situations spécifiques où le '' isset' "che ck est nécessaire au lieu de simplement fournir la variable dans la condition "si". Par exemple, disons que nous avons une variable '$ abc = 0;'. Maintenant, si nous fournissons simplement la variable dans la condition comme 'if ($ abc)', cela ne fonctionnera pas, car 'if (0)' ne satisfait pas la condition. Donc, dans ce cas, nous devrons utiliser 'if (isset ($ abc))' pour réussir la condition. –

+0

Huh? '0 'ne satisfera pas'! Empty', donc c'est totalement inutile. – deceze

2

de l'entrée de votre formulaire le nom est "recherche" et non "submitSearchSimple".

L'identifiant n'est pas transmis au serveur et aucun élément n'est un contrôle de formulaire (comme l'ancre dans votre exemple).

0

Un moyen simple d'identifier quelle variable vous avez passé comme POST: vous auriez pu faire un * var_dump ($ _ POST) * dans votre profiles.php. Vous auriez vu

tableau

(1) {[ "recherche"] => string (4) "test"}

Par conséquent, vous auriez pu voir que ce n'était pas $ _POST ["s"] mais $ _POST ["recherche"] et a conclu que ce n'était pas le id qui donne le nom de l'index mais le nom.

Je ne vois pas le point d'utiliser javascript dans ce cas ... (enfin, je peux l'imaginer est de style CSS, mais vous pouvez facilement le style d'un bouton soumettre de toute façon.