【发布时间】:2017-10-22 16:19:49
【问题描述】:
我已经看这个网站三天了。我承认我是使用 javascript 的新手。但是我使用了提供的许多不同的解决方案,但都没有奏效。请帮忙。
我正在尝试做一些简单的事情:将用户选择的国家/地区从 html5 页面上的下拉框中保存到隐藏的帖子变量(使用 javascript onchange。)在同一表单上的帖子数组中使用对于将输入发送到 mysql 数据库的 php 操作。这是我的代码:
隐藏的帖子变量不会更新。从那里我无法测试代码逻辑。但是我的 onchange 代码来自这个站点,并且应该可以工作。
参考资料:
<script type="text/javascript" src="../../js/jquery-2.1.4.min_prod.js"> </script>
<script type="text/javascript" src="../../js/respond.min.js"> </script>
<script type="text/javascript" src="../../js/bootstrap.min.js"> </script>
表格信息:
<form name="form1" method="post" enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" />
</form>
表单元素
$query="SELECT * from country ";
$query=$query."ORDER BY country asc";
$data = mysqli_query($conn,$query);
//or die('could not connect to db:'. mysqli_connect_error() );
mysqli_error($conn);
If ($data) {
echo '<select id="country" onchange="send_name(this)">';
echo '<option value="204">United States</option>';
while ($row = mysqli_fetch_array($data)) {
echo '<option value="'.$row['country_id'].'">'.$row['country'].'</option>';
}//while
echo '</select>';
}//if
mysqli_close($conn);
?>
<input type="hidden" id="c_php_value" name="c_php_value" value="">
Javascript
function send_name(selectObjectI) {
var value = selectObjectI.value;
$.ajax({
type: "POST",
url: "http://localhost/php/protected/form_addnews.php",
data:{c_php_value: value}
});
发布提交代码
$country_id1 = trim($_POST['c_php_value']);
【问题讨论】:
-
您永远不会更改或读取隐藏字段的值 - 您希望它做什么?您也不能使用
$_POST中的值,因为您没有发送 JSON 值作为 POST 中键的值。是否有任何理由为什么它应该是 JSON,而不仅仅是常规 POST? -
这句话不是应该这样做吗? $.post("form_addnews.php", JSON.stringify({c_php_value: value}));
-
好的。我从我的 javascript 调试中看到 [谢谢,utube] 我的 onchange 正在工作。就像他上面所说的那样,该值不会转移到隐藏的帖子对象中。但是如果 json 语句不这样做,那又会怎样呢?谢谢
-
我发现我的 json 语句中缺少双引号。它应该是“c_php_value”。显然这是非常重要的。
标签: javascript php post save onchange