一度に 1 つずつ項目を検索する API スクリプトから、データベース内の価格を更新する方法を作成しようとしています。
API スクリプトは商品番号で検索し、同じページで価格を更新します。
別のページには、cronjob と、すべての変数項目番号が関数に出力される foreach ループがあります。
次に、foreach ループ関数が項目番号を 1 つずつ取得し、それらを API.php ページに送信します。API.php ページは項目番号で検索し、データベースに更新します。
現在、これをエコーと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 がデータベースから引き出されているため、配列の上に設定されています。つまり、エコーでわかるように、これは単なる 1 つの項目番号ではありません...
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」に送信されます。「api.php」は (Search:$_POST['item_number'] ---then insert/update database) のような方法でアイテム番号を検索します。
それくらいだと思います!すべてが理にかなっていることを願っています!ありがとう!