jquery ajax variable to php


jquery ajax variable to php

我卡住了2周,因为我决定使用一个基于jquery库的漂亮的三视图。我的问题是什么,我试图得到一个选定文件夹的值作为一个变量php。

我能够得到的值,并通过一个Alertbox在Jquery中显示它,但值不张贴到PHP变量。

下面的文本只是为了澄清为什么我需要使用这个解决方案与php等。

然后解决这个问题,我将继续努力获得整个路径,我稍后将发送给bash脚本已经完成的内容。它创建一个文本文件与元标签从flac或mp3专辑为我的SQL数据库已经完成和工作。这个应用程序是本地维护数据库。

对于我的问题和代码(记住jquery和ajax对我来说是全新的)

文件名:file_browser.phpJquery部分

<script>
$(document).ready(function()
{
    $("button").click(function()
    {
        var dir = ($(".active").text())
        $.ajax({
            type: "POST",
            url:"file_browser.php",
            data: dir,
            success: function(data){ 
            alert(dir); dir }
        });
    });
});
</script>
PHP代码

<?php
    echo "<form>
          <button>Append</button>
          <div id'japp'>";
    if (isset($_POST['dir'])) {
        $dir = $_POST['dir']; }
        echo $dir;
       echo "</div> 
              </form>"; 
?>

我会继续努力,现在我至少有机会得到一些帮助,以避免在这个问题上多花一个星期的时间:)

来自jquery网站$.ajax.

默认情况下,使用GET HTTP方法发送Ajax请求。如果方法时,该方法可以通过设置类型选项值。控件的内容如何显示数据选项被发送到服务器。POST数据将始终是根据W3C使用UTF-8字符集传输到服务器XMLHTTPRequest标准。

data选项可以包含表单的查询字符串Key1 =value1&key2=value2,或{Key1: 'value1',key2:"value2"}。如果使用后一种形式,则转换数据在发送之前使用jQuery.param()将其转换为查询字符串。这可以通过将processData设置为false来规避处理。的如果希望将XML对象发送到服务器;在本例中,将contentType选项从application/x-www-form-urlencoded为更合适的MIME类型

我假设$(".active").text()的值只是您想要传递的值,没有任何键对它进行配对。如上面所示,将字符串格式化为键/值对,您应该会很好。

如果您需要您的$_POST数组包含dir元素,您需要发送一个键值对到您的脚本:

var dir = { "dir": $(".active").text() };

你应该试试这个:

<script>
$(document).ready(function()
{
    $("button").click(function()
    {
        // setting a key-value
        var dir = { dir: $(".active").text() };
        $.ajax({
            type: "POST",
            url:"file_browser.php",
            data: dir,
            success: function(data){ 
            alert(dir);} //removed the second 'dir'
        });
    });
});
</script>

解决方案是

{
    $("button").click(function()
    {
        var dir = ($(".active").text()); // from my question (gives name of selected dir)
        $.ajax({
            type: "POST",
            url: "file_browser.php",
            data: { dir: "dir" },
            success: function(response){ // function(response) was (data)
            $('#japp').html(dir);        // points to the forms id="japp"
            alert(dir); }
        });
    });
});

以上问题解决了。

我提到的另一个问题获取完整路径,而不仅仅是dir。在一定程度上解决了。

以dir(想要的)+ dir(不想要的)的字符串形式给出洞路径。它还给出了网站url,我认为而不是根(/)(不需要)+从文件系统(需要)的网页上的可见路径。

这可以用php中的正则表达式来解决,但我将首先尝试通过使用这个jQuery函数只获得想要的东西来使它更清晰。

把我几乎完成的解决方案留在这里,只是为了在需要的时候给一个开始的提示。

var dir = ($(".active").parent('li').text());

感谢所有的帮助,并引导我正确的方向@Frank B, @jeroen &;@Zim84