PHP echo bouton onclick function
Pour un peu de "boutique en ligne du projet" j'ai créer une table avec PHP echo"..." de la fonction. Le tableau affiche les valeurs et dans les dernières cellules, il doit y avoir un bouton qui permet à l'utilisateur de supprimer la ligne correspondante (ou pour mieux dire, de l'achat). Les données sont gérées dans une base de données et de lire pendant le chargement de la page et qu'affiché dans le tableau.
- Je utiliser un "identifiant d'achat" pour trouver les lignes qui doivent être supprimés, et il fonctionne très bien si je viens de le mettre en œuvre la fonction elle-même. Le problème est que je ne peux pas obtenir la fonction de travail en tant que "onclick" de l'événement pour le bouton.
Donc, un peu de code:
function delete_purchase($purchase_id){
mysql_query("DELETE FROM purchase WHERE purch_id = '$purchase_id'");};
C'est la fonction PHP qui supprime les lignes, assez facile.
$result = mysql_query("SELECT purchase.purch_id, item.name, purchase.amount, purchase.purch_date, delivery.meaning, item.weight FROM purchase, item, delivery WHERE purchase.cust_id='$cust_id' AND delivery.del_id = purchase.delivered AND purchase.item_id = item.item_id");
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['amount'] . "</td>";
echo "<td>" . $row['weight'] * $row['amount'] . "</td>";
echo "<td>" . $row['purch_date'] . "</td>";
echo "<td>" . $row['meaning'] . "</td>";
echo "<td><button onclick=\"delete_purchase('" . $row['purch_id'] . "')\">Kill</button></td>";
echo "</tr>";
}
Et c'est la partie qui ne semble pas fonctionner. J'ai récupérer la variable et certains autres valeurs à partir de la base de données et les insérer dans ma table tant qu'il existe des valeurs. Tout est affiché, même les boutons; mais en cliquant sur eux, ne pas faire n'importe quoi.
Code Source du site semble très bien:
<td><button onclick="delete_purchase('138')">Kill</button></td>
Espère que tout est clair, et les gars, vous avez quelques idées de ce qui est mauvais. Si vous avez besoin de connaître d'autres choses, il suffit de demander et je vais voir ce que je peux faire.
- PHP côté serveur. JavaScript est exécuté dans le navigateur.
Vous devez vous connecter pour publier un commentaire.
appelle une fonction Javascript appelée
delete_purchase
, qui ne semblent pas exister dans votre code. Vous n'avez qu'une fonction PHP avec ce nom.Depuis tous PHP est exécuté côté serveur, le code HTML sera construit bien avant que le client ne voit jamais le code et, par conséquent, vous ne sera jamais en mesure d'appeler le
delete_purchase
fonction PHP du côté client.Les deux seules façons de contourner ce problème sont:
- Créer un
delete_purchase
fonction JS qui appelle un fichier PHP grâce à l'utilisation d'AJAX.- N'appelez pas la
onclick
JS fonction à tous et rendre le bouton régulièrement soumettre le formulaire que vous ensuite de prendre sur le serveur, afin d'effacer l'achat. Toutefois, cela impliquerait une page complète d'actualisation.Votre
delete_purchase()
fonction est définie dans le côté serveur qui n'est pas disponible dans le côté client. Vous devez envoyer une demande à un serveur et d'envoyer l'identifiant, par exemple:Ensuite, vous pouvez les valider sur le côté serveur et appeler la fonction
vous essayez d'appeler un PHP-fonction directement à partir de l'HTML (dans le navigateur)
c'est impossible!
vous pouvez appeler à l'aide de 2 façons:
1) AJAX-appel de script php qui permet de supprimer l'achat
2) rediriger le navigateur de script php qui permet de supprimer l'achat, puis vous redirige retour