-
ajax mysql
e' lo so...so matto, ma mi devo imparare...
sto provando ad inserire in mysql dei dati da form senza ricaricare la pagina,ci sono riuscito, ma ho un
problema..
allora: il nome e il cognome me li inserisce bene, invece il file, me lo mette ma senza estensione,
come mai?
allego i codici:
Codice HTML:
<form >
<p><input type="text" name="nome" id="nome">
<input type="text" name="cognome" id="cognome"><br>
<input type="file" name="file" id="file">
<input type="button" id="bottone" value="Invia i dati">
</form>
Codice:
<script type="text/javascript">
$(document).ready(function() {
$("#bottone").click(function(){
var nome = $("#nome").val();
var cognome = $("#cognome").val();
var file = $("#file").val();
$.ajax({
type: "POST",
url: "/animali/ajax/upload-ajax.php",
data: "nome=" + nome + "&cognome=" + cognome + "&file=" + file,
dataType: "html",
});
});
});
</script>
e questa e' il codice per mysql
Codice PHP:
<?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$file_salvato = rand(1, 100000000).'.'.pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
$nomefile = ($file_salvato);
move_uploaded_file($_FILES["file"]["tmp_name"], "animali/ajax/".$file_salvato);
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$file= $_POST['file'];
$db_host = 'localhost';
$db_user = 'noncecapisco';
$db_pass = '';
$db_name = 'my_noncecapisco';
$cn = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($cn->connect_errno) {
echo "Connessione fallita: ". $cn->connect_error . ".";
exit();
}
$sql = "INSERT INTO sito_prova( nome , file , cognome ) VALUES ("
. "'" . $nome. "',"
. "'" . $nomefile. "',"
. "'" . $cognome. "');";
if (!$cn->query($sql)) {
echo "Errore della query: " . $cn->error . ".";
}
?>
in mysql ho, il nome, il cognome, ma il file e' senza estensione, grazie.
-
Puoi indicare l'URL della pagina?
Ciao!
-
eccoloooooooooo
Codice HTML:
http://noncecapisco.altervista.org/animali/ajax/sito%20ajax.php
-
Ho provato ad eseguire la richiesta, viene inviato:
Codice:
nome=alemoppo&cognome=cognome&file=C:\fakepath\img_test.png
Quindi l'estensione c'è.
Prova a fare un po' di debug: inserisci delle echo per vedere cosa valgono le varie variabili. Intendo ad esempio $_FILES["file"]["name"] etc.
Ciao!
-
si l'ho visto in mysql eccolo:
alemoppo
60978646.
cognome
ma perche' dice fakepath?
il file nella cartella non me lo mette
ho fatto echo"$nomefile";
mi stampa questo 15459765. che e' quello che mette in mysql
-
Non ho mai inviato un file tramite ajax, però non devi inviare semplicemente il nome per parametro POST. Prova questo esempio.
Ciao!
-
e' da diventa' matto..
alemoppo ..un 'ultima cosa poi giuro non ti disturbo piu'..
dato che ho visto che il codice per mettere il nome e il cognome funziona bene, possiamo trovare un modo per far
madare contaclick tramite ajax con $_POST, ci ho provato tutto il giorno ma non ci sono riuscito..
es: questo e' i il codice che ho sistemato...:
Codice:
<script type="text/javascript">
$(document).ready(function() {
$("#bottone").click(function(){
var contaclick = $("#contaclik").val();
$.ajax({
type: "POST",
url: "/animali/ajax/upload-ajax.php",
data: "contaclick=" + contaclick ,
dataType: "html",
});
});
});
</script>
come faccio per far associare il nome "id bottone" per mandarlo nel upload-ajax.php, tramite ajax con il codice:
Codice PHP:
echo "<form name='contaclick'><input type='hidden'name='contaclick' id='bottone'value='".$row['id']."'><input type='image' id='bottone' src='http://noncecapisco.altervista.org/animali/download.png'style='width:28px;height:28px;margin-left:22px;'><div style='margin-left:55px;color:#666666;margin-top:-37px;'>".$row['contaclick']."</div><img src ='".$row["file"]."'style='width:450px;height:auto;margin-left:8px;margin-top:10px;border-radius:15px;'>".PHP_EOL;
in fondo gli deve arrivare solo il nome...
e questo e' il tuo codice peri click:
Codice PHP:
<?php
$db_host = 'localhost';
$db_user = 'noncecapisco';
$db_pass = '';
$db_name = 'my_noncecapisco';
$cn = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($cn->connect_errno) {
echo "Connessione fallita: ". $cn->connect_error . ".";
exit();
}
if(isset($_POST["contaclick"]))
{
$sql = 'UPDATE sito_italia SET contaclick = contaclick + 1 WHERE id = '.$_POST["contaclick"];
if (!$cn->query($sql))
{
echo "Errore della query: " . $cn->error . ".";
}
}
else
{
echo '$_POST[contaclick] non esiste';
}
-
Citazione:
Codice:
dataType: "html",
Non credo tu riesca ad inviare un file impostando il formato html. Vedi l'esempio che ti ho indicato prima.
Per la cronaca, personalmente non ho mai provato ad inviare un file con ajax.
Ciao!
-
ce' so riuscito.......posso stampare a schermo senza ricaricare la pagina...prova..ah ah
scrivi solo il nome...:lol:
http://noncecapisco.altervista.org/a...ito%20ajax.php