È ansible chiamare una funzione da PHP usando onsubmit
da JavaScript? Se così fosse, qualcuno potrebbe darmi un esempio di come sarebbe stato fatto?
function addOrder(){ $con = mysql_connect("localhost", "146687", "password"); if(!$con){ die('Could not connect: ' . mysql_error()) } $sql = "INSERT INTO orders ((user, 1st row, 2nd row, 3rd row, 4th row) VALUES ($session->username,1st variable, 2nd variable, 3rd variable, 4th variable))"; mysql_query($sql,$con) if(mysql_query($sql,$con)){ echo "Your order has been added"; }else{ echo "There was an error adding your order to the databse: " . mysql_error(); } }
Questa è la funzione che voglio chiamare. È un sistema di ordinamento, si digita la quantità di ogni elemento desiderato, si invia Invia e si dovrebbe aggiungere l’ordine alla tabella.
Javascript è una lingua client (viene eseguita sul browser Web, dopo aver ricevuto la pagina Web) mentre PHP è sul lato server (viene eseguito prima del rendering della pagina Web). Non hai modo di chiamarti in un altro.
C’è una funzione Javascript chiamata xhttprequest che ti permette di chiamare qualsiasi script sul server Web e ottenere la sua risposta. Quindi, per risolvere il tuo problema, puoi creare uno script PHP che restituisca del testo (o XML o JSON), quindi chiamalo e analizzi la risposta con Javascript.
Questo processo è ciò che chiamiamo AJAX ed è molto più facile farlo con un buon strumento di te stesso. Dai un’occhiata a JQuery , è una libreria Javascript potente e facile da usare con gli helper AJAX integrati.
Un esempio con JQuery (lato client):
$.ajax({ type: "POST", // the request type. You most likely going to use POST url: "your_php_script.php", // the script path on the server side data: "name=John&location=Boston", // here you put you http param you want to be able to retrieve in $_POST success: function(msg) { alert( "Data Saved: " + msg ); // what you do once the request is completed }
Sembra che tu voglia AJAX .
Questo è un argomento troppo grande per una singola risposta, ma questo dovrebbe farti andare avanti.
Fondamentalmente, il Javascript invierà una richiesta HTTP a uno script PHP sul tuo server e poi farà qualcosa con la risposta. JSON è probabilmente qualcosa che vorresti conoscere anche tu.
È indirettamente ansible chiamare una funzione PHP utilizzando JavaScript. Come altre persone hanno già menzionato, vorrai fare qualche tipo di richiesta – questo non deve necessariamente essere Ajax. Potrebbe essere sincrono. Senza sapere esattamente cosa stai cercando di realizzare, ecco cosa vorrei suggerire:
Di nuovo, questo è un po ‘generale, ma anche la tua domanda. Spero che questo dia una sorta di direzione.
Il più vicino a cui andrai sarà xajax che ti permetterà di avvolgere una funzione PHP in una chiamata AJAX. L’ho usato un bel po ‘prima di iniziare a lavorare con Zend Framework e ho trovato troppo difficile implementarlo in modo OO.
Con xajax scrivi una funzione PHP che fa tutta la tua logica regolare e poi restituisce un object ObjectResponse che manipola il browser tramite AJAX (caselle di avviso, modifica HTML, CSS, ecc.). Registri la tua funzione con xajax e poi xajax sputerà qualche javascript nella tua sezione HTML.
Nel tuo codice HTML hai appena chiamato la funzione javascript generata da xajax e si occupa del resto tramite AJAX.
Dovrai fare qualcosa come:
E poi avere un file PHP chiamato add_order.php
con qualcosa del tipo:
$success = 0; $con = mysql_connect("localhost", "146687", "password"); if(!$con) { $message = 'Could not connect to the database.'; } else { // SANITIZE DATA BEFORE INSERTING INTO DATABASE // LOOK INTO MYSQL_REAL_ESCAPE_STRING AT LEAST, // PREFERABLY INTO PREPARED STATEMENTS $query_ok = mysql_query("INSERT INTO `orders` ...."); if($query_ok) { $success = 1; $message = "Order added."; } else { $message = "Unable to save information"; } } print json_encode(array('success' => $success, 'message' => $message));
Per far funzionare questa bellezza devi andare sul sito web di jQuery , scaricarlo e includere il file jquery.js.
Non ho provato quanto sopra ma dovrebbe funzionare. In bocca al lupo.
Siamo spiacenti, la tua domanda è troppo semplice. A seconda della funzione PHP che vuoi chiamare su formulari, Ajax non ti aiuterà. Sei a conoscenza delle differenze fondamentali (clientide / serveride) tra PHP e JavaScript?
Sì, un altro grande e facile tutorial per imparare ajax è:
http://24ways.org/2005/easy-ajax-with-prototype/
Il prototipo è un’altra cosa che consiglio se non sei andato troppo lontano con il tuo progetto e hai bisogno di ripristinare molte funzionalità.
In bocca al lupo!