将变量从AJAX传递给PHP

时间:2014-11-28 19:29:32

标签: javascript php ajax

我正在开发一个php项目。 我有一个关联数组,我用它来制作字典。我还有一个带有文本的字符串,其中包含数组的一些键。我想要做的是生成另一个String,其中第一个文本与第一个文本相同,但关键字替换为数组的值。

在索取之前,我希望用户在数组的每个空值(比较字符串)中写入内容。我必须这样做一个弹出窗口。我需要获取Javascript变量的变量内容并将其放入PHP数组中。我曾试图使用AJAX,但我是一个大人物,我不知道我是否做得很好。

这是我的代码(它不起作用):

<?php
  $array["[[red]]"] = "Once upon a time";
  $array["[[blue]]"] = "fox";
  $array["[[black]]"] = "cat";
  $array["[[orange]]"] = "";

  $string = "<br /> It has been a long time since [[red]] "
  . "[[blue]]. My name is [[blue]] "
  . "and my surname is [[black]]. <br />"
  . "My age is[[orange]]. <br /> <br />.";

  echo "First string': ". $string;
?>
<br /> <br />

<?php
  foreach ($array as $key => $value)
  {
    if ((strstr($string, $key) == true) && ($value == ""))
    {
?>
      <script>
        name = prompt("Insert a correct value: ");
        while ((name== "") || !(isNaN(name)) || name== null)
        {
          window.alert("Wrong insert!");
          name= prompt("Insert a correct value: ");
        }

        var xmlhttp=new XMLHttpRequest();

        xmlhttp.open("GET","index.php?name="+name,true);
        xmlhttp.send();
      </script>

<?php
        $q = $_REQUEST["name"];
        $value = $q;
        echo "the value is  ".$q;
    }
    //echo $key." => ".$value;
    echo "<br/> <br/>";
  }
?>

1 个答案:

答案 0 :(得分:1)

要生成一个字符串,其中关键字被数组中的值替换,您可以使用sprintf函数,如下所示:

$array["red"] = "Once upon a time";
$array["blue"] = "fox";
$array["black"] = "cat";
$array["orange"] = "";

$sentence = "<br />It has been a long time since %s %s. My name is %s and my surname is %s.<br /> My age is %s. <br /><br />.";
echo "First string" . sprintf($sentence, $array["red"], $array["blue"], $array["blue"], $array["black"], $array["orange"]);

至于你问题的第二部分,你想要捕获用户的输入以填充数组中的空条目......好吧,你需要先用{{1}更正你的nome js变量}}。

然后,您需要在AJAX调用中提交密钥和用户提供的值,以便了解要更新的关联数组中的哪个条目。在实例化name之前捕获查询参数会更容易。

此外,即使$array中存在truestrstr 也不会返回needle。看看doc

所以可能是这样的:

haystack