我希望有一个选择列表,在选择一个选项时运行php数据库查询。我有代码:
<select>
<option value="available">Available</option>
<option value="sold">Sold</option>
</select>
<input type="submit" name="change status">
说,当用户选择“已售出”时,我想运行:
<?php
db_query("UPDATE {product_stock} SET stock='0' WHERE nid='$value'");
?>
我试过
<option value="sold" <?php db_query("UPDATE {product_stock} SET stock='0' WHERE nid='$value'"); ?> >Sold</option>
但似乎不起作用。 我不知道我是否应该使用
<form method="GET">...</form>
我知道我可以某种方式使用ajax
,但我真的不熟悉它。
任何想法如何做到这一点?
感谢
答案 0 :(得分:2)
你必须使用javascript!否则,您必须在表单提交后更新数据库。
使用 javascript库jquery 的可能方法是:
$("select").change(function() {
$.post("/your/url", {option: $(this).val()}, function(return) {
//echo result if necessary
}
});
在服务器端,您应检查$_POST['option']
并在
ESCAPED
变量“option”的内容。
答案 1 :(得分:0)
当组合框更改时,您必须使用jquery或纯JavaScript发送AJAX调用。 根据新值,您可以发送各种参数并调用PHP脚本。
但是你尝试的HTML和PHP之间的交互将永远不会奏效。您在浏览器中看到组合框的时间已经执行了PHP命令。
答案 2 :(得分:0)
我的网站是在drupal上构建的,所以我创建了一个自定义模块并使用了hook_form_alter,因此我可以使用PHP而不需要在ajax中编码。
答案 3 :(得分:0)
好吧,您将必须创建两个文件,一个文件具有表单,第二个文件具有动作本身,第一个文件具有类似的内容。
<form method="POST" action="ActionFile.php">
<input type="text" name="name" id="name" value="">
<input type="submit" value="find name">
</form>
并创建一个名为ActionFile.php的文件,其中将包含变量以及与DB和select的连接。