2013-02-11 3 views
1
<?php 
mysql_connect("host", "user", "pw") or die(mysql_error()); 
mysql_select_db("db") or die(mysql_error()); 



$sql = "SELECT machine_id FROM machines"; 
$result = mysql_query($sql); 

echo "<form action='results_send.php' method='post' >"; 
echo "<select name='machine_id'>"; 
while ($row = mysql_fetch_array($result)) { 
    echo "<option value='" . $row['machine_id'] . "'>" . $row['machine_id'] . "</option>"; 
} 
echo "</select></form>"; 
echo '<input type="submit" value="Submit">'; 



$machine = $_POST['machine_id']; 

var_dump($machine); 

?> 

retours:

<form action='results_send.php' method='post' ><select name='machine_id'><option value='2011 Honda'>2011 Honda</option><option value='1999 Toyota'>1999 Toyota</option><option value='1999 Honda'>1999 Honda</option><option value='1999 Honda'>1999 Honda</option><option value='2013 Toyota'>2013 Toyota</option><option value='2012 Ford'>2012 Ford</option><option value='2012 Ford'>2012 Ford</option><option value='2012 Ford'>2012 Ford</option><option value='2012 Ford'>2012 Ford</option></select></form><input type="submit" value="Submit">NULL 

tout cela est sur le même document: results_send.php

J'ai essayé en php/MySQL pour seulement quelques days-- la patience est appréciée.

+1

Y at-il raison que vous cognant ensemble des requêtes à la main plutôt que d'utiliser un [framework PHP populaire] (http://www.phpframeworks.com/top-10-php-frameworks /)? De plus, vous ne devriez pas utiliser mysql_query dans le nouveau code. Il est prévu d'être retiré des futures versions de PHP et est dangereusement peu sûr s'il n'est pas utilisé parfaitement. – tadman

+0

Pouvez-vous nous fournir un var_dump() ou print_r() de votre $ _POST? Je crois que vous ne transmettez pas les données comme vous le souhaitez, ce qui provoque l'index indéfini. – Julio

Répondre

0

Je ne vois pas comment vous voulez que $ _POST renvoie une valeur ou même que nous voulions que nous comprenions votre problème sans que vous n'expliquiez comment vous envoyez votre formulaire.

vous devez utiliser l'une des 2 solutions pour votre cas:

  • Pour utiliser AJAX

  • Pour utiliser deux formes différentes avec les boutons d'envoi qui ont des noms différents. Ensuite, utilisez isset ($ _ POST ['name_of_button']) pour vérifier quel formulaire est soumis lors de la publication.

Merci

0

Vous avez une erreur de syntaxe, vous manquez la citation d'ouverture sur l'attribut value:

Modification:

echo "<option value=\""; 

Ou

echo '<option value="'; 

vous manque aussi fermeture </form> tag. Si vous ajaxez ce script et insérez le contenu dans une page contenant d'autres formulaires, la balise de formulaire manquante peut poser problème.

Il est également utile de transmettre des données via htmlspecialchars() lorsque vous les affichez en HTML, afin d'éviter les erreurs de syntaxe et de XSS où les données peuvent inclure des guillemets.

+0

Bien que vous ayez raison, cela ne répond même pas à distance à la question. –

+0

merci d'avoir attrapé cela. – psorensen

+0

@PeteSorensen si '$ _POST ['machine']' n'est toujours pas présent après la correction de la syntaxe, affichez la source HTML générée et mettez à jour la question afin que je puisse voir ce que le navigateur obtient. Voir aussi mon édition sur la fermeture '' tag. – MrCode

Questions connexes