2013-10-19 14 views
10

Voglio passare alcuni valori da JavaScript a PHP usando jQuery/AJAX. Ho il seguente codice "semplificato", non sicuro di quello che sto facendo male. Sembra che ci siano parecchie domande/risposte simili in StackOverflow, ma nessuno di questi aiuta davvero.Cercando di passare valori variabili da JavaScript a PHP usando AJAX

HTML:

<div> 
<a href="#" id="text-id">Send text</a> 
<textarea id="source1" name="source1" rows="5" cols="20"></textarea> 
<textarea id="source2" name="source2" rows="5" cols="20"></textarea> 
</div> 

JavaScript:

$("#text-id").click(function() { 
$.ajax({ 
type: 'post', 
url: 'text.php', 
data: {source1: "some text", source2: "some text 2"} 
}); 
}); 

PHP (text.php):

<?php 

$src1= $_POST['source1']; 
$src2= $_POST['source2'];  

echo $src1; 
echo $src2; 

?> 

Il problema: Non succede niente ... no errors..nothing . Non vedo i valori di 'source1' e 'source2' visualizzati nelle istruzioni echo di PHP.

+1

prima includere il file jquery –

+0

che è già lì ... nella testa HTML. Non l'ho mostrato qui. – Gandalf

+1

Per favore, dacci un indizio! Cosa sta succedendo o non sta succedendo? Vedi un messaggio di errore? –

risposta

10

È necessario includere un success handler nel AJAX chiamata:

$("#text-id").on('click', function() { 
    $.ajax({ 
     type: 'post', 
     url: 'text.php', 
     data: { 
      source1: "some text", 
      source2: "some text 2" 
     }, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 
}); 

e nella vostra console, riceverai:

some textsome text 2 

Assicurati che sia il test.php e i file sorgente HTML si trovano nella stessa directory.

+1

Salve, la console JavaScript mostra "some text testo text 2". ma per qualche ragione non vedo nessuna delle dichiarazioni di eco di PHP. Per favore, dimmi perché? – Gandalf

+0

@ Gandalf Non sono sicuro di aver capito la tua domanda. Vuoi il codice sorgente PHP per essere rispedito? – hjpotter92

+0

sì ... dovrebbe fare qualcosa e quindi inviare il controllo al JavaScript. Almeno questo è quello che sto cercando di ottenere. In questo caso le istruzioni "echo $ src1" non stanno facendo nulla. Mi aspettavo che popolasse la pagina con il valore $ src1. – Gandalf

1
$("#text-id").click(function(e) {// because #text-id is an anchor tag so stop its default behaivour 
e.preventDefault(); 
$.ajax({ 
type: "POST",// see also here 
url: 'text.php',// and this path will be proper 
data: { 
     source1: "some text", 
     source2: "some text 2"} 
}).done(function(msg) 
     { 
     alert("Data Saved: " + msg);// see alert is come or not 
    }); 
}); 

riferimento ajax

+0

Grazie, ma questo non ha aiutato. – Gandalf

+0

vedi codice di aggiornamento @Gandalf –

Problemi correlati