xferring javascript 变量以发布变量的实际代码
Posted
技术标签:
【中文标题】xferring javascript 变量以发布变量的实际代码【英文标题】:actual code for xferring javascript variable to post variable 【发布时间】: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”。显然这是非常重要的。
【参考方案1】:
感谢 utube 上的编码员,我可能会说德语,我发现我不需要 javascript、ajax 或任何复杂的东西来完成我想做的事情。
我只需要执行以下操作:
(1) 在动态创建的 SELECT 标志(name="country_id2") 中添加一个 name=""。
(2) 用户选择输入并创建下拉框。
(3) 设置表单提交后收集 $_POST。 ($country_id = $_POST['country_id2'])
$data = mysqli_query($conn,$query);
//or die('could not connect to db:'. mysqli_connect_error() );
mysqli_error($conn);
If ($data)
echo '<select name="country_id2" id="country_id2">';
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);
【讨论】:
以上是关于xferring javascript 变量以发布变量的实际代码的主要内容,如果未能解决你的问题,请参考以下文章
lftp下载文件无法覆盖,提示" file already existst and xfer:clobber is unset" 问题解决
Javascript / Jquery 将变量拆分为两个以进行条带集成
Qualtrics:使用javascript转换管道变量并以文本显示?
Javascript - 将一个大对象分配(而不是克隆)一个新变量以减少其名称
为啥 Chrome 和 Firefox 以不同方式处理 jQuery ajax() 回调中设置的 javascript 变量?