gpt4 book ai didi

javascript - 使用 jquery 将数据加载到服务器

转载 作者:行者123 更新时间:2023-11-30 17:28:51 24 4
gpt4 key购买 nike

我已经阅读了很多关于通过 jquery 将数据加载或发布到服务器的内容,但找不到适合我的。我有一堆输入和从中获得的数据,我包含在列表(数组)中。

我需要将它加载到服务器。我想我应该这样做

客户端

<html>
<head>
<title>the title</title>
<script type="text/javascript"
src="/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#driver").click(function(event){
var name = $("#name").val();
$("#stage").load('/jquery/result.php', {"name":name} );
});
});
</script>
</head>
<body>
<p>Enter your name and click on the button:</p>
<input type="input" id="name" size="40" /><br />
<div id="stage" style="background-color:blue;">
STAGE
</div>
<input type="button" id="driver" value="Show Result" />
</body>
</html>

服务器端

<?php
if( $_REQUEST["name"] )
{
$name = $_REQUEST['name'];
echo "Welcome ". $name;
}
?>

从这里得到 passing data to server但在我的例子中,我需要加载一个列表(数组),我不知道 php 部分必须如何在服务器端用 python 编写。还需要提到我正在使用 Flask。

我将非常感谢任何帮助。

编辑

好吧,我快到了!

除了发生一件奇怪的事

主页.html

<script>
var dict = {}
$(document).ready(function(){
$("#save").click(function(){
var ids = []
var datas = []
$(".result").each(function() {
ids.push(this.id);
datas.push(this.value);
});

for (var i = 0; i < ids.length; i++){
dict[ids[i]] = datas[i];
}
console.log(ids);
console.log(datas)

});
});

var bla = {1:'4', 2:'5', 3:'6', 4:'7', 5:'4', 6:'5', 7:'6', 8:'7'}

console.log(dict)

$(function() {
$('a#calculate').bind('click', function() {
$.getJSON('/add_numbers', dict, function(data) {
$("#result").text(data.result);
});
return false;
});
});

</script>
<p><input type=text size=5 name=a> +
<input type=text size=5 name=b> =
<span id=result>?</span>
<p><a href=# id=calculate>calculate server side</a>

<div id="chosen">
{% for key, value in selected.iteritems() %}
{{value[0]}}<input type="text" id="{{key}}" size="5" class="result">{{value[1]}}<br>
{% endfor %}
<input type="submit" id="save" value="save">
</div>

View .py

@app.route('/home', methods=['GET', 'POST'])
def show_work():
demount = DemountForm(request.form)
tile = TileForm(request.form)
chosen = []
for each in session['data']:
chosen.append(each)
selected = methods.get_selected(chosen)
return render_template('home.html', demount=demount, tile=tile, selected = selected)

@app.route('/add_numbers')
def add_numbers():
a = request.args.get('1', '0', type=str)
return jsonify(result=a)

我从 flask "ajax with jquery" 得到了解决方案.

但是,这里有一个问题。

如果我在模板 $.getJSON('/add_numbers', bla, function(data) 中使用那个奇怪的变量 bla 它工作得很好。它工作是因为bla 中的数据是全局的,它在 getJSON 中可见,此函数将数据发送到 /add_number,从 bla 添加到 URL 数据,如下所示: "http://localhost:5000/add_numbers?1=4&2=5&3=6&4=7&5=4&6=5&7=6&8=7"然后结果返回 return jsonify(result=一)

当我在 $.getJSON('/add_numbers', dict, function(data) 中使用 dict 时,问题就来了。

在前面的函数之后,这里形成了dict $(document).ready(function(){ $("#save").click(function(){... data from dict 像这样添加到当前 URL:http://localhost:5000/home?1=6&2=6&3=6&4=6&5=6&6=6 和变量 dict 不再包含数据。

据我所知,这种情况的发生是由于,比方说,URL,每个函数都与之相关。

有谁知道这个问题是怎么解决的?

最佳答案

通常数据通过 ajax 传递到服务器这是一个可行的例子。

      $.ajax({
type: 'post',
url: '/jquery/result.php',
data: {"name":$('#name').val()},
success: function(data){
//maybe do something with response (data)
}
});

在服务器端获取这些信息是这样的

<?PHP $name = $_POST['name']; ?> 

之后你可以随心所欲地使用name变量

关于javascript - 使用 jquery 将数据加载到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com