2012-05-05 8 views
0

私はAPIのスクリプトからアイテムを一度に1つずつ検索するデータベースの価格を更新する方法を作成しようとしています。

APIスクリプトは商品番号で検索してから、同じページで価格を更新しています。

別のページには、クロノジとforeachループがあり、すべての変数項目番号が関数に出力されます。

foreachループ関数は、項目番号を1つずつ取り出してAPI.phpページに送り、項目番号で検索してデータベースに更新します。

現在、私はechoとhtml "posts"を使ってこのページを表示しようとしています。ページが読み込まれると自動的にアイテムを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」にそれを上に送信し、その後、メインページよりも、 (検索:$ _ POST ['item_number'] ---データベースの挿入/更新)。

私はそれについてだと思います!すべてが意味をなさないことを願っています!ありがとう!このような

+0

Ajaxを試してみましたか? – Satya

+0

いいえ、今まで聞いたことがありません! – myladeybugg

+0

をチェックしてください。あなたはとても幸せでなければなりません。 – Satya

答えて

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> 
+0

前の投稿までこれについて聞いたことはありませんでした。サンプルコードをありがとう。私はそれを研究し、それを試して実装する方法を見つけます。 – myladeybugg

0

コードエコー私のデータベースから項目番号のすべて。私がそれらの1つをクリックすると、 '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>" ; 



} 


} 

?> 
関連する問題