2011-12-02 645 views
0

我怎么能没有ajaxy善良做到这一点?我需要调试一个麻烦的PHP脚本。没有形式只是一个图像,当点击时执行以下操作。再次jquery发送数据到php没有ajax

$.post("php/navTabs.php", { action: "deleteTab", theHTM: thehtm }, function(jdata) { 
    alert("The tab was " + jdata.is_deleted); 
}, "json"); 

感谢, 托德

+0

您可以使用cURL从命令行发布。 –

回答

-1

简短回答:你不能使用Javascript。

龙答:

如果你想避免使用AJAX,你有两个选择:

1)制作一个表单的图像部分,在点击提交按钮隐藏的输入。

<form method="form.php" action="post"> 
     <input type="hidden" name="action" value="delete"/> 
     ...rest of form... 
    </form> 

2)使图像成为链接到URL上的输入的链接。像:

form.php?action=delete 

不知道为什么你想避免使用AJAX,但。

+0

当然,如果可以完成,您可以直接访问脚本。 PHP文件存在? AJAX不会魔法解析出来的内容。 –

+0

恩,是的,但是你不能使用jQuery/Javascript发送数据到PHP文件而不使用AJAX。您可以使图像成为一个链接,并像URL地址一样在URL中发送数据,或者您可以将其更改为表单,但无法使用AJAX通过jQuery/Javascript发送数据,至于I'意识到。 – Jemaclus

+0

最后,我不想绕过Ajax,但我有一个PHP脚本,不正确的行事,我需要把一些var_dumps和回声看到WTF正在进行。 – maddogandnoriko

2

我会/ navTabs.php改变$ _ POST变量在PHP到$ _GET和访问脚本一样,直接

php/navTabs.php?name=value&name2=value2 etc 

这样,你不你的方式没有阿贾克斯。

1

这种方法将允许你因为它透明的发生给用户,并允许一个回调函数使用非常类似于$.post()流:

<img /> 
<iframe id="workFrame" style="display: none"></iframe> 
<form action="php/navTabs.php" target="workFrame" method="post" style="display: none"> 
<input type=hidden id="hidden-1"> 
<input type=hidden id="hidden-2"> 
</form> 

<script> 
$('#hidden-1').val('some value to send to the server'); 
$('#hidden-2').val('some OTHER value to send to the server'); 
$('img').on('click', function() { 
    $('form').trigger('submit'); 
}); 
</script> 

这使用具有隐藏的输入的形式(因此这可以是透明的给用户)。您可以使用JavaScript设置隐藏输入的值,然后以编程方式将表单提交给隐藏的iframe。

这种方法的另一个特点是,你可以绑定到load事件的iframe,并有一个回调函数就像$.post()

$('#workFrame').on('load', function() { 
    var response = $(this).contents().filter('body'); 
    //if you output JSON in your PHP script you could parse this as JSON and do work 
}); 

UPDATE

如果你想do是看到你的PHP脚本的输出,那么你可以使用你的开发工具(FireBug等)来查看响应。您还可以在AJAX回调中记录响应:

$.post("php/navTabs.php", { action: "deleteTab", theHTM: thehtm }, function(jdata) { 
    alert("The tab was " + jdata.is_deleted); 
    console.log(jdata); 
}, "json"); 

如果您当前未使用某些Dev。使用控制台的工具,我强烈建议检查FireBug,它将为您节省大量的时间调试代码。