2012-05-05 5 views
0

API 스크립트에서 항목을 한 번에 하나씩 검색하는 데이터베이스의 가격을 업데이트하는 방법을 만들고 있습니다.

API 스크립트는 항목 번호로 검색 한 다음 동일한 페이지에서 가격을 업데이트합니다.

다른 페이지에는 cronjob이 있고 foreach 루프에는 모든 변수 항목 번호가 출력됩니다.

foreach 루프 기능은 항목 번호를 하나씩 가져 와서 API.php 페이지로 보내고 항목 번호로 검색하고 데이터베이스로 업데이트합니다.

현재 나는 echo와 html "posts"를 사용하여 원하는 페이지에이 작업을 수행하려고합니다. 페이지가로드되면 자동으로 항목을 API 페이지에 제출하는 일부 자바 스크립트와 함께. 아마 나는이 모든 잘못에 대해 갈거야!

무슨 일이 일어나고, foreach 루프가 모든 숫자를 읽고 올바르게 출력하지만, 거기에있는 자바 스크립트 코드가 전송됩니다. 그리고 나는 API로 보내진 첫 번째 항목 번호 엔트리 만 가져오고 물론 데이터베이스에 삽입됩니다.

이렇게하면 페이지가 .php foreach 루프 페이지에서 벗어나기 때문에 foreach 루프를 계속할 수없고 첫 번째 항목 만 붙어 있습니다.

죄송합니다. 그래서 이것은 더 - 배열의 모든 item_numbers이 데이터베이스 끌려 가고 이후 설정되는

$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']); 

// 위 : 그냥

여기처럼 내 코드가 어떻게 표시되는지를 보여줍니다 ... 명확하게하려고

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

코드 에코 내 데이터베이스에서 항목 번호의 모든. 그것들 중 하나를 클릭하면 'api.php'에 연결되고 데이터베이스에 새 항목이 삽입되지만 항목 번호를 나타내는 페이지로 돌아 가지 않습니다. 나는이 중 어떤 것을 반향해야하는지 또는 아약스가 올바른 위치에 있는지 확실하지 않습니다.

항목 번호가 사용되어 내 데이터베이스에 연결하고 데이터베이스를 업데이트하는 'api.php'로 전송됩니다.

아약스 통합 방법은 다음과 같습니다. 니가 생각하는 걸 내가 알려주지. 감사합니다.

<?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>" ; 



} 


} 

?> 
관련 문제