【问题标题】:Using foreach loop to send $var's to another .php page?使用 foreach 循环将 $var 发送到另一个 .php 页面?
【发布时间】:2012-05-14 13:11:35
【问题描述】:

我正在尝试创建一种通过 API 脚本更新数据库中价格的方法,该脚本一次搜索一个项目。

API 脚本按商品编号搜索,然后在同一页面中更新价格。

另一个页面,将有一个 cronjob 和一个 foreach 循环,其中所有可变项目编号都被输出到函数中。

然后,foreach 循环函数,一个一个地获取项目编号,将它们发送到 API.php 页面,然后按项目编号搜索并更新到数据库中。

目前我正在尝试使用 echo 和 html“发布”到所需页面来执行此操作。以及一些在页面加载后自动将项目提交到 api 页面的 javascript。也许我的想法完全错了!

发生的事情是,foreach 循环读取所有数字并正确输出它们,但随后我在其中的 javascript 代码提交。而且我只收到发送到 API 的第一个项目编号条目,当然也插入到数据库中。

由于这会使页面远离 .php foreach 循环页面,因此 foreach 循环无法继续,我只能使用第一个条目。

抱歉,帖子太长了!只是想清楚......

我的代码如下所示:

$sql = "SELECT id, item_number FROM products ORDER BY id DESC";
$query = mysql_query($sql) or die (mysql_error());
while ($result = mysql_fetch_array($query)) {

$itemnumber = array($result['item_number']);

//数组上方正在设置,因为所有 item_numbers 都被从数据库中提取出来——所以这不仅仅是一个项目编号,正如 echo 中所见...

foreach ($itemnumber as $item_number) {

echo "<form method=\"post\" action=\"api.php\" name=\"ChangeSubmit\" id=\"ChangeSubmit\" >";
echo "<input type=\"text\" name=\"item_number\" value=\"{$item_number}\"/>";

echo "<script type=\"text/javascript\">
function myfunc () {
var frm = document.getElementById(\"ChangeSubmit\");
frm.submit();
}
window.onload = myfunc;
</script></form>";

/*This outputs on the page all the item numbers of every product, with input text boxes next to them, then after a split second the javascrip echo submits -- only the very first item number to the api. */
}
}

?>

所以这是主页,然后将其发送到“api.php”,它只是通过类似的方式查找项目编号(搜索:$_POST['item_number'] ---然后插入/更新数据库) .

我想就是这样!希望一切都有意义!谢谢!

【问题讨论】:

  • 你试过检查 Ajax 吗?
  • 没有。到现在都没听说过!
  • 请检查,你应该很高兴

标签: php foreach cron


【解决方案1】:

像这样使用 jQuery:

<script type="text/javascript">
$('#ChangeSubmit').click(function() {
  $.ajax({
    url: "api.php",
    dataType: "json",
    type: "POST",
    data: {
      itemNumber: <?php print $item_number; ?>,
    },
    success: function (m) {
        console.log(m);
    },
    error: function (e) {
      console.log("Something went wrong ...: "+e.message);
    },
  }); /* end ajax*/
  e.preventDefault();
});
</script>

【讨论】:

  • 直到上一篇文章我才听说过这个。感谢您的示例代码。我将对其进行研究并弄清楚如何尝试和实施它。
【解决方案2】:

现在代码回显了我数据库中的所有项目编号。如果我单击其中一个,它会连接到“api.php”并在我的数据库中插入一个新条目,但它不会返回到与项目编号相呼应的页面。我不确定我是否应该回应其中的任何一个,或者 ajax 是否在正确的位置。

项目编号被使用并发送到“api.php”,它将连接到我的数据库并更新我的数据库。

这就是我一直在尝试合并 ajax 的方式。让我知道你们的想法。 谢谢

<?php

mysql_connect("", "", "") or die(mysql_error());

mysql_select_db("") or die (mysql_error());


$sql = "SELECT id, item_number FROM products WHERE retailer LIKE ('%api%') ORDER BY id DESC";
$query = mysql_query($sql) or die (mysql_error());
while ($result = mysql_fetch_array($query)) {


$itemnumber = array($result['item_number']);

foreach ($itemnumber as $item_number) {

echo "<form method=\"post\" action=\"api.php\" name=\"ChangeSubmit\" id=\"ChangeSubmit\" >";
echo "<input type=\"submit\" name=\"item_number\" value=\"{$item_number}\" />";


echo "<script type=\"text/javascript\">
$('#ChangeSubmit').click(function() {
  $.ajax({
    url: \"api.php\",
    dataType: \"json\",
    type: \"POST\",
    data: {
      itemNumber: <?php print $item_number; ?>,
    },
    success: function (m) {
        console.log(m);
    },
    error: function (e) {
      console.log(\"Something went wrong ...: \"+e.message);
    },
  }); /* end ajax*/
  e.preventDefault();
});
</script>" ;



}


}

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    相关资源
    最近更新 更多