inserire dati in tabella con ajax (ciclo foreach)

nim

Utente Attivo
11 Ott 2011
96
0
0
salve a tutti...ho fatto una pagina dove vengono estratti (tramite ciclo foreach) alcuni risultati e affianco ad essi ho messo un form con dei campi nascosti aventi come value delle variabili contenenti delle informazioni di ogni risultato apparso con il coclo. Il form contiene un pulsante submit che mi archivia in un database queste informazioni tramite ajax e php...il problema è che dovunque io clicchi mi archivia sempre il primo risultato che appare con il ciclo foreach..avete qualche idea del motivo?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
forse hai dato il name uguale a tutti gli input?

è difficile indovinare senza qualche riga di codice
 

nim

Utente Attivo
11 Ott 2011
96
0
0
sì il nome è uguale perchè sono tutti risultati del ciclo foreach ...ora il codice:
PHP:
foreach ($friends["data"] as $value) {
           
            echo 'foto prof di'. $value["name"] .'<a href="http://www.facebook.com/' . $value["id"] . '"><img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>g</a>
<form name="add_friend">
    <input type="hidden" name="mio_id" id="mio_id" value="'. $userInfo["id"] .'">
   <input type="hidden" name="id_friend" id="id_friend" value="'. $value["id"] .'">
<input type="hidden" name="name_friend" id="name_friend" value="'. $value["name"] .'">
    <input type="button" id="submit" value="Invia i dati">
</form>

<div id="risultato"></div>';
            
          

        }
e questo è il ciclo: prima di questo ci sta la parte ajax:
Codice:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {

  //al click sul bottone del form
  $("#submit").click(function(){

    //associo variabili
    var mio_id = $("#mio_id").val();
    var id_friend = $("#id_friend").val();
    var name_friend = $("#name_friend").val();
  //chiamata ajax
    $.ajax({

     //imposto il tipo di invio dati (GET O POST)
      type: "POST",

      //Dove devo inviare i dati recuperati dal form?
      url: "risultato_aggiunta.php",

      //Quali dati devo inviare?
      data: "mio_id=" + mio_id + "&id_friend=" + id_friend + "&name_friend=" + name_friend,
      dataType: "html",

      //Inizio visualizzazione errori
      success: function(msg)
      {
        $("#risultato").html(msg); // messaggio di avvenuta aggiunta valori al db (preso dal file risultato_aggiunta.php) potete impostare anche un alert("Aggiunto, grazie!");
      },
      error: function()
      {
        alert("Chiamata fallita, si prega di riprovare..."); //sempre meglio impostare una callback in caso di fallimento
      }
    });
  });
});
</script>
se me lo dite posto anche lo script risultato_aggiunta.php che inserisce i dati nel database
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
hai già fatto un var_dump di $friends["data"] per vedere se ci sono i dati giusti?

PHP:
var_dump($friends["data"])
 

nim

Utente Attivo
11 Ott 2011
96
0
0
si si è tutto apposto... Credo che il problema sia proprio negli id, ma come faccio a mettere un id diverso per ogni risultato se questi ultimi sono risultati di un ciclo foreach?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Cosi gli passi l'id giusto in teoria

PHP:
 <input type="hidden" name="mio_id" id="mio_id" value="'. $userInfo["id"] .'">

dovrebbe funzionare

metti var_dump($userInfo["id"]) nella pagina che fa l'insert e semmai posta anche quella

VEDO ORA

non deovrebbe essere $value["id"] ?

Ah no scusa Sono fuso oggi
 
Ultima modifica:

nim

Utente Attivo
11 Ott 2011
96
0
0
aggiungendo il var_dump alla pagina che mi va l'insert , nei risultati appare (oltre a "ok") anche un NULL.
posto il codice che mi fa l'insert:
PHP:
<?php
include "../include/dbconfig.php";
var_dump($userInfo["id"]);
		

		$mio_id = $_POST['mio_id'];
		$id_friend = $_POST['id_friend'];
$name_friend = $_POST['name_friend'];
		$sql = "INSERT INTO my_friends_selected (mio_id,id_friend_selected,name_friend_selected) VALUES ('$mio_id','$id_friend','$name_friend')";

		if (@mysql_query($sql,$conn)) 

			{ echo 'ok'; }
					else { echo 'no'; } 
?>
anche se credo che l'errore stia nel codice ajax che probabilmente mi preleva l'id sbagliato...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
PArli di questo?

Codice:
var id_friend = $("#id_friend").val();

Non conosco jquery purtroppo

Forse potresti incrementare una varibile ad oogni iterazione del ciclo

aggiungerla all'id

e recuperlarla con javascript

per poi fare + o - cosi

PHP:
<input type="hidden" name="id_friend" id="id_friend' . $incremento .'" value="'. $value["id"] .'">
Codice:
var id_friend = $("#id_friend" + incremento).val();

Probabilmente c'è una solouzione in jquery ma non avrei idea, ne sto sparando una :)
 

nim

Utente Attivo
11 Ott 2011
96
0
0
e la variabile incremento come la creo? :( non mi capisco neanche un po' :(
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Pensavo a qualcosa del genere
nel ciclo
PHP:
// inizializzi la variabile fuori dal ciclo
$i = 0;
foreach ($friends["data"] as $value) {
    // questo per poi recuperarlo con javascript
    echo '<input type="hidden" id="incremento" value="$i"/>';
    // aggiungi l'incremento all'id    
    echo '<input type="hidden" name="id_friend" id="id_friend' . $i . '" value="' . $value["id"] . '">';
    // incrementi la variabile
    $i++;
}
nel javascript
Codice:
// recuperi la variabile incremento
var incremento = $("#incremento").val();
// la aggiungi all'id
var id_friend = $("#id_friend" + incremento).val();

ma magari la sto sparando grossa

Prova al massimo non funziona :fonzie:


AH no non puo funzionare Ora ci ripenso
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
M inserire i dati ottenuti da una jquery in una tabella già esistente jQuery 1
C Inserire dati tabella leggendo parte di altra tabella con php PHP 13
M creare una tabella dove inserire i dati del database Database 1
F Inserire tanti dati in una tabella MySQL 2
C Inserire dei dati di una tabella dinamica in un file esterno js Javascript 17
M inserire da remoto dati in una tabella PHP 21
D [Access] Come inserire i dati in una tabella secondaria? MS Access 0
I inserire dati in tabella in base all'if PHP 11
L Inserire dati in una tabella PHP 6
C Sql per inserire dati in una tabella Classic ASP 1
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
L inserire dati multi livello PHP 8
G inserire dati automaticamente in mysql PHP 0
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
spider81man Connettersi ad un DB ed inserire dati con Javascript Javascript 3
A [ASP] Inserire dati in un database Classic ASP 1
B INSERIRE DATI CON IMMAGINE DA FORM IN MYSQL MySQL 7
B Inserire dati su DB da mail Classic ASP 6
C Inserire i dati in un vettore senza ammettere duplicati C/C++ 0
C Inserire dati da input PHP 5
M Inserire nel DB i dati provenienti da checkbox e recuperarli poi dal DB per la pagina di edit PHP 20
F [RISOLTO]inserire dati nel database jQuery 14
C Pagina HTM connessa al DB access (non è possibile modificare/inserire dati) MS Access 0
M Semplice pagina per inserire/leggere dati su database PHP 5
Emix Inserire Array di dati in database.... PHP 21
L classe per inserire dati al database PHP 2
N Inserire dati in un database Mysql PHP 6
asevenx inserire dati da form con nome variabile PHP 0
T inserire un url su dati richiamati da mysql PHP 4
T Inserire i dati da un .txt ad un database PHP 1
D php e maschera per inserire dati in mysql PHP 4
I Inserire più dati in database PHP 43
I Inserire dati in database PHP 7
E inserire dati del DB nel sito PHP 5
D Inserire su un file alcuni dati presi da vari form PHP 2
M Aiuto come inserire dati tramite php? PHP 1
A Inserire in una pagina dei dati presi da una popup Javascript 3
§ inserire dati in form già fatti PHP 20
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
gara1 inserire immagine di sfondo in canvas Javascript 0
FDF182 Inserire pdf in db PHP 3
otto9due Inserire o aggiornare tabella my sql controllando una coppia di valori PHP 7
D Inserire link PHP 0
P inserire due voci in un titolo post wp WordPress 1
R inserire video nel sito HTML e CSS 15
J Inserire blog wordpress in angular CMS (Content Management System) 0
A inserire variabile php colore in div html PHP 2
G Inserire una scritta Java 1
M Inserire variabile nella value di una hidden PHP 3

Discussioni simili