我正在尝试创建一种方法来更新数据库中的价格,从API脚本中一次搜索一个项目。
API脚本按项目编号进行搜索,然后在同一页面中更新价格。
另一个页面,将有一个cronjob,以及一个foreach循环,其中所有可变项目编号都输出到函数中。
然后,foreach循环函数逐个获取项目编号,将它们发送到API.php页面,然后按项目编号进行搜索并更新到数据库中。
目前我正在尝试使用echo's和html“发布”到所需页面。与一些javascript一起加载页面后自动将项目提交到api页面。也许我说这一切都错了!
正在发生的事情是,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'] ---然后插入/更新数据库)
我认为这是关于它的!希望一切都有道理!谢谢!
答案 0 :(得分:0)
像这样使用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>
答案 1 :(得分:0)
现在,代码回应了我数据库中的所有项目编号。如果我单击其中一个,它将连接到'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>" ;
}
}
?>