jQuery / Smarty获取请求数据到php函数并返回

时间:2012-01-25 21:20:41

标签: php jquery ajax json smarty

有没有人知道如果可能或如何提交表单,使用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>

真的很有吸引力的是有人可以帮助或揭示这个

干杯!

1 个答案:

答案 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脚本:

如果您已经定义了一个功能,您可以像这样发布它。将函数重新格式化为自己的页面可能更容易,而不是将其合并到页面中。

<?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>