0

我有一个表单,用于将值传递到另一个页面及其工作。

无论如何,在不打开设置了我的表单操作的页面的情况下这样做吗?

我认为可以使用 ajax 和 javascript 来完成

echo "<form name=\"android\"  method=\"post\" action=\"http://www.example.com\" target=\"_blank\">";
echo "<input type=\"hidden\" name=\"appid\" value=\"$appid\" />";
echo "<input type=\"hidden\" name=\"pushmessage\" value=\"$pushmessage\" />";
echo "<input type=\"hidden\" name=\"username\" value=\"$user\" />";
echo "<input type=\"hidden\" name=\"pass\" value=\"$pass\" />";
echo  "<input type=\"hidden\" name=\"publisherid\" value=\"createcoolapps\" />";
//echo "<input type=\"submit\" value=\"Push\" name=\"sub\" />";
echo "</form>";
echo "<script> document.forms[0].submit();</script>";
4

3 回答 3

1

尝试这个:

$url = 'http://www.example.com/';
$fields = array(
    'appid' => urlencode($appid),
    'pushmessage' => urlencode($pushmessage),
    'username' => urlencode($user),
    'pass' => urlencode($institution),
    'publisherid' => urlencode("createcoolapps")
);

foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

$result = curl_exec($ch);

curl_close($ch);
于 2013-05-04T16:41:40.033 回答
0

是的,正如您所想,这可以使用 Ajax 来完成。到目前为止,最简单的方法是从这里使用 jQuery 的 AJAX 库(如果没有别的,现在谁使用 jQuery):http: //api.jquery.com/jQuery.ajax/

一个例子可能如下(未经测试,但有点正确):

<form action="mypage.php" method="post"> <!-- Args for when JS is disabled -->
    <input type="text" id="form_text_1" value="" />
    <input type="submit" id="form_submit" />
</form>

<script>
    $('#form_submit').click(function() {
        jquery.ajax("mypage.php", {
            type: "post",
            data: {
                text1: $('#form_text_1').val()
            }
        });
        return false; // Stop the form being submitted in the foreground when JS works
    });
</script>

当然,根据您的需要进行调整。

于 2013-05-04T16:44:09.927 回答
0

如果您可以包含 jQuery 库,这非常容易:http ://www.jquery.com

如果您使用 jQuery 和上面的代码,您可以执行以下操作:

$('input[name="sub"]').click( function() {
   $.post($(this).parents('form').attr('action'), $(this).parents('form).serialize());
   return false;
} );

这会拦截名为“sub”的提交的点击,然后执行和 AJAX 发布到表单的动作。

您最好查看浏览器控制台以跟踪发布的数据并发现任何问题。

于 2013-05-04T16:44:10.880 回答