有没有人知道如果可能或如何提交表单,使用get获取发布的varable,通过ajax将其传递给php函数然后返回数据?
我们目前在普通表单上提交它并使用smarty返回数据但是我遇到了将其置于选项卡中的问题,因此尽管最好基于ajax来防止重新加载页面 - 当前工作代码是如下:
{assign var="postocde" value=$smarty.request.postcode}
{assign var="postcode_var" value=$postocde|fn_get_found_locations}
{assign var="postcode_final" value=$postcode_var}
<div id="postcode_result" {if $postcode_final == '1' || $postcode_final == '2'}class="postcode_result"{/if}>
{if $postcode_final == '1'}
{$lang.restricted_shipping_fail}
{elseif $postcode_final == '2'}
{$lang.restricted_shipping_success}
{/if}
</div>
<form method="get" action="{$seo_url.href}" name="restricted_locator" id="restricted_locator" class="cm-ajax">
<div class="form-field">
<label for="postcode">{$lang.restricted_shipping_label}:</label>
<input type="text" value="" name="postcode" size="50" class="input-text cm-hint" id="postcode" />
</div>
<input id="submit_postcode" type="submit" value="search" class="moreButton" />
</form>
真的很有吸引力的是有人可以帮助或揭示这个
干杯!
答案 0 :(得分:0)
只需使用jQuery AJAX调用即可。它将返回从处理请求的php页面回显的内容。因此,如果您需要多个变量,则可以使其回显JSON字符串。
<script>
$("#restricted_locator").submit(function(sub){
sub.preventDefault();
$.ajax({
type: 'POST',
url: '{$seo_url.href}',
data: $('#restricted_locator').serialize(),
dataType: "json",
success: function(returned){
// Anything echoed in process-sendform.php will be stored as var "returned"
}
});
});
console.log(returned); // will yield the string: "This string will be sent back to page."
</script>
如果您已经定义了一个功能,您可以像这样发布它。将函数重新格式化为自己的页面可能更容易,而不是将其合并到页面中。
<?php
$value1 = $_POST['value1ToFeedToFunction'];
$value2 = $_POST['value1ToFeedToFunction'];
$value3 = $_POST['value1ToFeedToFunction'];
$value4 = $_POST['value1ToFeedToFunction'];
function performFunction($val1,$val2,$val3,$val4){
// do what ever you need to do with passed values here
echo "This string will be sent back to page.";
}
performFunction($value1,$value2,$value3,$value4);
?>
您必须在文档的头部包含jQuery:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>