首先,我在ajax中没有太多天赋所以请在回答时考虑一下。在这里,我希望在提交之前获取我在表格中插入的所有值,但遗憾的是我没有得到我想要的结果。到目前为止,我已经这样做了。请看看。
<script>
var form_data={ agent_name: $('#agent_name').val(),
type: $('input[name="type"]').val(),
number: $('#number').val(),
quantity: $('#quantity').val()
}
$.ajax({
type: 'POST',
url: '<?php echo base_url();?>admin_control/ajax_data',
data: form_data,
dataType:"json", //to parse string into JSON object,
success: function(data){
if(data){
var len = data.length;
alert(len);
var txt = "";
if(len > 0){
for(var i=0;i<len;i++){
if(data[i].agent_name && data[i].type){
txt += $('#table').append('<tr class="item-row"><td><input type="hidden" id="add_type" name="add_type[]" value="super">Super</td><td><input type="hidden" id="add_amount" name="add_amount[]" value="10">745</td><td><input type="hidden" class="add_quantity" id="add_quantity" name="add_quantity[]" value="10">10</td><td name="add_amount" id="add_amount">100</td><td><input type="checkbox" class="add_checkbox" name="layout" id="add_checkbox" value="1" checked></td></tr>');
}
}
if(txt != ""){
$("#table").append(txt).removeClass("hidden");
}
}
}
},
error: function(jqXHR, textStatus, errorThrown){
alert('error: ' + textStatus + ': ' + errorThrown);
}
});
return false;
</script>
这里我想将form_data的值传递给我写过的表,我们如何传递它并强制使用ajax中的url
,同时使用它会得到像{{1}这样的错误}}
这是我的控制器
error: parsererror: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
答案 0 :(得分:2)
Ajax帖子将为post值调用控制器方法。 ajax代码通常是正确的,但你还没有定义url。
url: '',
首先定义一个方法(例如:HomeController),然后设置ajax url参数,如
url: '@Url.Action("Save","Home")'
或url: 'Save/Home'
[HttpPost]
public JsonResult Save(string agent_name, string type , int number,int quantity)
{
// return json
}
注意:
您使用方法类型从表单发送的数据类型必须是 同样的。
答案 1 :(得分:1)
好吧,只是为了给你提供一些提示:Ajax调用可能如下所示:
$_POST
php脚本应真正处理传入信息(作为<?php
echo json_encode($_POST);
?>
数组传递)到其他一些最终将作为JSON字符串回显的数据。
这只是用于测试的echodata.php的一个简单版本:
length
修改强>:
虽然您已修复了URL属性并在服务器上添加了“控制器”,但您的Ajax成功函数仍然需要它无法获得的功能。您的PHP脚本提供了一个JSON字符串,该字符串将被解析为JavaScript 对象和不 数组。该对象将不具有您的成功函数尝试使用的json
属性。相反,您应该寻找for
属性。
因此,data.json.agent_name, data.json.number
循环没有意义,您可以直接使用data.json.type
和.append()
(等)属性。您当前的let test = Js.Promise.(resolve("Hello") |> then_(_obj => raise(Not_found)));
let ker = Js.Promise.(test
|> then_((_) => "found" |> Js.log |> resolve)
|> catch((_) => "Not found" |> Js.log |> resolve));
也只会在表格中添加静态字符串。当然,这应该改为使用新接收的值。