jquery & php: сохранение некоторых данных без перезагрузки - PullRequest
1 голос
/ 03 января 2009

У меня три кнопки и мне нужно сохранить некоторые данные. У меня есть идея, я должен установить идентификатор для каждой кнопки, а затем позволить JS определить кнопку ведьмы, которая была нажата, например:

$("#mySpecifikButton").click(function()
{
....some code here...
});

но потом я застрял. Например у меня 9 пользователей. Все они имеют удостоверение личности в БД. Итак, теперь у нас есть все пользователи в отдельных строках:

<p><a id="userID">user 0</a></p>
<p><a id="userID">user 1</a></p>
<p><a id="userID">user 2</a></p>
<p><a id="userID">user 3</a></p>
...

Когда я нажимаю на конкретном пользователе, я хочу добавить его в базу данных через php с помощью jquery. Но как мне отправить его в php с помощью JS (jquery)?

Я правильно думаю или есть лучшие способы?

Если я не очень хорошо описал это, спросите меня.

Ответы [ 4 ]

4 голосов
/ 03 января 2009

Из того, что я вижу, вы можете использовать Ajax для отправки значения кнопки, которая была нажата, в скрипт php. Найдите на сайте jQuery документацию по $ .get и $ .post. :)

Редактировать: Теперь, когда я не на своем iPod, будет намного легче печатать. : P

Вот что я имею в виду:

<input type="button" value="Button 1" id="1" />
<input type="button" value="Button 2" id="2" />
<input type="button" value="Button 3" id="3" />
<input type="button" value="Button 4" id="4" />

Затем используйте JS:

<script type="text/javascript">
$("input[type=button]").click(function() {
  $.post("myPHPscript.php",{buttonID: $(this).attr("id")},function(d) {
    //d is the response from the PHP page.
    //Do something with it!
  });
});
</script>

1 голос
/ 03 января 2009

Похоже, что вы вносите изменения в базу данных, я бы порекомендовал использовать $.post( url, [data], [callback], [type] ); ссылку . Вы можете просто опубликовать форму на сервере и работать с ней так же, как с любой другой формой.

0 голосов
/ 03 января 2009

Вы можете использовать AJAX для отправки запроса на страницу PHP (как указано выше с $.post). Самый простой способ - это создать страницу PHP - скажем, /insert.php:

<?php
    some_insert_function($_REQUEST["userid"], ...);
?>

затем используйте:

function go(el) {
    $.post("/insert.php?items="+el.id);
}

РЕДАКТИРОВАТЬ: Вы также должны добавить визуальную индикацию того, что данные были отправлены - по крайней мере, сообщение в строке состояния (setStatus("Sent data"), хотя они не всегда работают), но предпочтительно изменение цвета или сообщение-в-DIV.

0 голосов
/ 03 января 2009

Вам не нужно использовать jquery для этого. Это просто через ajax.

пользователь 0

пользователь 1

пользователь 2

пользователь 3

------------------------------ Файл script.js ------------- -----------------------

var xmlHttp;


ajaxFunction(id){

url = anypage.php?Sentid=id; // here you are sending id through GET to any simple db connection mysql and php based page to add to db or anyother function.

xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true) xmlHttp.send(null)

}//end of function


function stateChanged(){        
if(xmlHttp.readyState == 4 || xmlHttp.readyState == "complete" ){       // any operation you want to perform here

    }//end of if 
}//end of function


function GetXmlHttpObject(){    
var xmlHttp =null; 
var xmlHttp =null; 
if (window.XMLHttpRequest){

          // If IE7, Mozilla, Safari, etc: Use native object
          var xmlHttp = new XMLHttpRequest()    
}   
else    {   
    if (window.ActiveXObject){

          // ...otherwise, use the ActiveX control for IE5.x and IE6
          var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
          }

    }    
    return xmlHttp;
 }//end of function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...